Skip to content

Commit

Permalink
cacert: really fix utf-8 certname blacklists
Browse files Browse the repository at this point in the history
See #27576.

(cherry picked from commit 2d5c122)
  • Loading branch information
fpletz committed Aug 9, 2017
1 parent 9349886 commit f1a7b81
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
7 changes: 4 additions & 3 deletions pkgs/data/misc/cacert/default.nix
@@ -1,4 +1,4 @@
{ stdenv, fetchurl, writeText, nss, python3
{ stdenv, fetchurl, writeText, nss, python
, blacklist ? []
, includeEmail ? false
}:
Expand All @@ -20,7 +20,7 @@ stdenv.mkDerivation rec {

src = nss.src;

nativeBuildInputs = [ python3 ];
nativeBuildInputs = [ python ];

configurePhase = ''
ln -s nss/lib/ckfw/builtins/certdata.txt
Expand All @@ -29,7 +29,8 @@ stdenv.mkDerivation rec {
${concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
EOF
cp ${certdata2pem} certdata2pem.py
cat ${certdata2pem} > certdata2pem.py
patch -p1 < ${./fix-unicode-ca-names.patch}
${optionalString includeEmail ''
# Disable CAs used for mail signing
substituteInPlace certdata2pem.py --replace \[\'CKA_TRUST_EMAIL_PROTECTION\'\] '''
Expand Down
20 changes: 20 additions & 0 deletions pkgs/data/misc/cacert/fix-unicode-ca-names.patch
@@ -0,0 +1,20 @@
--- a/certdata2pem.py 2017-08-01 23:10:00.000000000 +0300
+++ b/certdata2pem.py 2017-08-01 23:08:21.131297636 +0300
@@ -88,7 +88,7 @@
\# Read blacklist.
blacklist = []
if os.path.exists('blacklist.txt'):
- for line in open('blacklist.txt', 'r'):
+ for line in io.open('blacklist.txt', 'r', encoding='utf-8'):
line = line.strip()
if line.startswith('#') or len(line) == 0:
continue
@@ -101,7 +101,7 @@
if obj['CKA_CLASS'] != 'CKO_NSS_TRUST':
continue
if obj['CKA_LABEL'] in blacklist:
- print("Certificate %s blacklisted, ignoring." % obj['CKA_LABEL'])
+ print("Certificate %s blacklisted, ignoring." % unicode(obj['CKA_LABEL']).encode('utf-8'))
elif obj['CKA_TRUST_SERVER_AUTH'] == 'CKT_NSS_TRUSTED_DELEGATOR':
trust[obj['CKA_LABEL']] = True
elif obj['CKA_TRUST_EMAIL_PROTECTION'] == 'CKT_NSS_TRUSTED_DELEGATOR':

0 comments on commit f1a7b81

Please sign in to comment.