summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support
diff options
context:
space:
mode:
authorKai Kang <kai.kang@windriver.com>2018-10-12 10:08:44 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-10-12 16:57:21 +0100
commit9e958c9023ab54b0b402f3316ad38d7492eff527 (patch)
tree4934d3bdbab0d1a66ea2e9ab6d1c830ad0856eb0 /meta/recipes-support
parent48df61b17167e266c0c7d6d37c6ecfb1caeb1516 (diff)
downloadpoky-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/recipes-support')
-rw-r--r--meta/recipes-support/nss/nss/blank-cert9.dbbin0 -> 28672 bytes
-rw-r--r--meta/recipes-support/nss/nss/blank-key4.dbbin0 -> 36864 bytes
-rw-r--r--meta/recipes-support/nss/nss/system-pkcs11.txt5
-rw-r--r--meta/recipes-support/nss/nss_3.38.bb21
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 @@
1library=
2name=NSS Internal PKCS #11 Module
3parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription=''
4NSS=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
30SRC_URI[md5sum] = "ac9065460a7634ba8eb0f942f404e773" 33SRC_URI[md5sum] = "ac9065460a7634ba8eb0f942f404e773"
@@ -212,14 +215,16 @@ do_install_append() {
212} 215}
213 216
214do_install_append_class-target() { 217do_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
225PACKAGE_WRITE_DEPS += "nss-native" 230PACKAGE_WRITE_DEPS += "nss-native"