diff options
| author | Kai Kang <kai.kang@windriver.com> | 2018-10-12 10:08:44 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-10-12 16:57:21 +0100 |
| commit | 9e958c9023ab54b0b402f3316ad38d7492eff527 (patch) | |
| tree | 4934d3bdbab0d1a66ea2e9ab6d1c830ad0856eb0 /meta | |
| parent | 48df61b17167e266c0c7d6d37c6ecfb1caeb1516 (diff) | |
| download | poky-9e958c9023ab54b0b402f3316ad38d7492eff527.tar.gz | |
nss: fix non-determinism when create a blank certificate
It uses certutil from nss to create a blank certificate. But the
checksum of database file key4.db changes every time:
$ certutil -N -d sql:. --empty-password
$ md5sum *
f9dac2cfcb07cc8ca6db442a9a570906 cert9.db
b892c5ff7c1977d4728240b0cf628377 key4.db
7b9136cb03f07ae62eb213a5239fda71 pkcs11.txt
$ rm *
$ certutil -N -d sql:. --empty-password
$ md5sum *
f9dac2cfcb07cc8ca6db442a9a570906 cert9.db
405d55178e866a115c1aa975fccfa764 key4.db
7b9136cb03f07ae62eb213a5239fda71 pkcs11.txt
Provide pre-created databases with a blank certificate to fix
non-determinism issue. And these database files are from nss qemux86-64
build.
(From OE-Core rev: e64a30f7af87fa960b012ace92c51b88e8abae68)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/recipes-support/nss/nss/blank-cert9.db | bin | 0 -> 28672 bytes | |||
| -rw-r--r-- | meta/recipes-support/nss/nss/blank-key4.db | bin | 0 -> 36864 bytes | |||
| -rw-r--r-- | meta/recipes-support/nss/nss/system-pkcs11.txt | 5 | ||||
| -rw-r--r-- | meta/recipes-support/nss/nss_3.38.bb | 21 |
4 files changed, 18 insertions, 8 deletions
diff --git a/meta/recipes-support/nss/nss/blank-cert9.db b/meta/recipes-support/nss/nss/blank-cert9.db new file mode 100644 index 0000000000..7d4bcf2582 --- /dev/null +++ b/meta/recipes-support/nss/nss/blank-cert9.db | |||
| Binary files differ | |||
diff --git a/meta/recipes-support/nss/nss/blank-key4.db b/meta/recipes-support/nss/nss/blank-key4.db new file mode 100644 index 0000000000..d47f08d04f --- /dev/null +++ b/meta/recipes-support/nss/nss/blank-key4.db | |||
| Binary files differ | |||
diff --git a/meta/recipes-support/nss/nss/system-pkcs11.txt b/meta/recipes-support/nss/nss/system-pkcs11.txt new file mode 100644 index 0000000000..1a264e9cc4 --- /dev/null +++ b/meta/recipes-support/nss/nss/system-pkcs11.txt | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | library= | ||
| 2 | name=NSS Internal PKCS #11 Module | ||
| 3 | parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' | ||
| 4 | NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30}) | ||
| 5 | |||
diff --git a/meta/recipes-support/nss/nss_3.38.bb b/meta/recipes-support/nss/nss_3.38.bb index 904b621a07..e0ee209106 100644 --- a/meta/recipes-support/nss/nss_3.38.bb +++ b/meta/recipes-support/nss/nss_3.38.bb | |||
| @@ -25,6 +25,9 @@ SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSIO | |||
| 25 | file://nss-fix-nsinstall-build.patch \ | 25 | file://nss-fix-nsinstall-build.patch \ |
| 26 | file://disable-Wvarargs-with-clang.patch \ | 26 | file://disable-Wvarargs-with-clang.patch \ |
| 27 | file://pqg.c-ULL_addend.patch \ | 27 | file://pqg.c-ULL_addend.patch \ |
| 28 | file://blank-cert9.db \ | ||
| 29 | file://blank-key4.db \ | ||
| 30 | file://system-pkcs11.txt \ | ||
| 28 | " | 31 | " |
| 29 | 32 | ||
| 30 | SRC_URI[md5sum] = "ac9065460a7634ba8eb0f942f404e773" | 33 | SRC_URI[md5sum] = "ac9065460a7634ba8eb0f942f404e773" |
| @@ -212,14 +215,16 @@ do_install_append() { | |||
| 212 | } | 215 | } |
| 213 | 216 | ||
| 214 | do_install_append_class-target() { | 217 | do_install_append_class-target() { |
| 215 | # Create a blank certificate | 218 | # It used to call certutil to create a blank certificate with empty password at |
| 216 | mkdir -p ${D}${sysconfdir}/pki/nssdb/ | 219 | # build time, but the checksum of key4.db changes every time when certutil is called. |
| 217 | touch ./empty_password | 220 | # It causes non-determinism issue, so provide databases with a blank certificate |
| 218 | certutil -N -d sql:${D}${sysconfdir}/pki/nssdb/ -f ./empty_password | 221 | # which are originally from output of nss in qemux86-64 build. You can get these |
| 219 | chmod 644 ${D}${sysconfdir}/pki/nssdb/*.db | 222 | # databases by: |
| 220 | rm ./empty_password | 223 | # certutil -N -d sql:/database/path/ --empty-password |
| 221 | # Remove build path prefix | 224 | install -d ${D}${sysconfdir}/pki/nssdb/ |
| 222 | sed -i "s:${D}::g" ${D}${sysconfdir}/pki/nssdb/pkcs11.txt | 225 | install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db |
| 226 | install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db | ||
| 227 | install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt | ||
| 223 | } | 228 | } |
| 224 | 229 | ||
| 225 | PACKAGE_WRITE_DEPS += "nss-native" | 230 | PACKAGE_WRITE_DEPS += "nss-native" |
