Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mozilla-nss for openSUSE:Factory checked in at 2022-06-29 16:00:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mozilla-nss (Old) and /work/SRC/openSUSE:Factory/.mozilla-nss.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozilla-nss" Wed Jun 29 16:00:24 2022 rev:190 rq:985447 version:3.79 Changes: -------- --- /work/SRC/openSUSE:Factory/mozilla-nss/mozilla-nss.changes 2022-06-01 17:34:40.518741744 +0200 +++ /work/SRC/openSUSE:Factory/.mozilla-nss.new.1548/mozilla-nss.changes 2022-06-29 16:00:27.256544133 +0200 @@ -1,0 +2,33 @@ +Sat Jun 25 12:30:25 UTC 2022 - Wolfgang Rosenauer <w...@rosenauer.org> + +- sync with current SLE + * latest FIPS changes incl. testsuite fixes (enabled now) + nss-fips-180-3-csp-clearing.patch + nss-fips-tests-enable-fips.patch + nss-fips-tests-skip.patch + nss-fips-pbkdf-kat-compliance.patch + +------------------------------------------------------------------- +Sun Jun 12 08:57:06 UTC 2022 - Wolfgang Rosenauer <w...@rosenauer.org> + +- update to NSS 3.79 + * bmo#205717 - Use PK11_GetSlotInfo instead of raw C_GetSlotInfo calls. + * bmo#1766907 - Update mercurial in clang-format docker image. + * bmo#1454072 - Use of uninitialized pointer in lg_init after alloc fail. + * bmo#1769295 - selfserv and tstclnt should use PR_GetPrefLoopbackAddrInfo. + * bmo#1753315 - Add SECMOD_LockedModuleHasRemovableSlots. + * bmo#1387919 - Fix secasn1d parsing of indefinite SEQUENCE inside + indefinite GROUP. + * bmo#1765753 - Added RFC8422 compliant TLS <= 1.2 undefined/compressed + ECPointFormat extension alerts. + * bmo#1765753 - TLS 1.3 Server: Send protocol_version alert on + unsupported ClientHello.legacy_version. + * bmo#1764788 - Correct invalid record inner and outer content type alerts. + * bmo#1757075 - NSS does not properly import or export pkcs12 files + with large passwords and pkcs5v2 encoding. + * bmo#1766978 - improve error handling after nssCKFWInstance_CreateObjectHandle. + * bmo#1767590 - Initialize pointers passed to + NSS_CMSDigestContext_FinishMultiple. + * bmo#1769302 - NSS 3.79 should depend on NSPR 4.34 + +------------------------------------------------------------------- Old: ---- nss-3.78.1.tar.gz New: ---- nss-3.79.tar.gz nss-fips-180-3-csp-clearing.patch nss-fips-pbkdf-kat-compliance.patch nss-fips-tests-enable-fips.patch nss-fips-tests-skip.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mozilla-nss.spec ++++++ --- /var/tmp/diff_new_pack.t11LAR/_old 2022-06-29 16:00:30.004548272 +0200 +++ /var/tmp/diff_new_pack.t11LAR/_new 2022-06-29 16:00:30.008548279 +0200 @@ -17,14 +17,14 @@ # -%global nss_softokn_fips_version 3.78 -%define NSPR_min_version 4.32 +%global nss_softokn_fips_version 3.79 +%define NSPR_min_version 4.34 %define nspr_ver %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr) %define nssdbdir %{_sysconfdir}/pki/nssdb Name: mozilla-nss -Version: 3.78.1 +Version: 3.79 Release: 0 -%define underscore_version 3_78_1 +%define underscore_version 3_79 Summary: Network Security Services License: MPL-2.0 Group: System/Libraries @@ -70,8 +70,12 @@ Patch25: nss-fips-detect-fips-mode-fixes.patch Patch26: nss-fips-combined-hash-sign-dsa-ecdsa.patch Patch27: nss-fips-aes-keywrap-post.patch -Patch28: nss-fips-fix-missing-nspr.patch -Patch29: nss-fips-stricter-dh.patch +Patch37: nss-fips-fix-missing-nspr.patch +Patch38: nss-fips-stricter-dh.patch +Patch40: nss-fips-180-3-csp-clearing.patch +Patch41: nss-fips-pbkdf-kat-compliance.patch +Patch42: nss-fips-tests-skip.patch +Patch44: nss-fips-tests-enable-fips.patch %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 # aarch64 + gcc4.8 fails to build on SLE-12 due to undefined references BuildRequires: gcc9-c++ @@ -92,8 +96,7 @@ %endif %ifnarch %sparc %if ! 0%{?qemu_user_space_build} -# disabled temporarily bmo#1236340 -%define run_testsuite 0 +%define run_testsuite 1 %endif %endif @@ -227,8 +230,12 @@ %patch25 -p1 %patch26 -p1 %patch27 -p1 -%patch28 -p1 -%patch29 -p1 +%patch37 -p1 +%patch38 -p1 +%patch40 -p1 +%patch41 -p1 +%patch42 -p1 +%patch44 -p1 # additional CA certificates #cd security/nss/lib/ckfw/builtins @@ -268,6 +275,8 @@ %endif export NSS_DISABLE_GTESTS=1 export NSS_USE_SYSTEM_SQLITE=1 +export NSS_ENABLE_FIPS_INDICATORS=1 +export NSS_FIPS_MODULE_ID="\"SUSE Linux Enterprise NSS %{version}-%{release}\"" #export SQLITE_LIB_NAME=nsssqlite3 MAKE_FLAGS="BUILD_OPT=1" make %{?_smp_mflags} nss_build_all $MAKE_FLAGS @@ -275,7 +284,7 @@ %if 0%{?run_testsuite} export BUILD_OPT=1 export HOST="localhost" -export DOMSUF=" " +export DOMSUF="localdomain" export USE_IP=TRUE export IP_ADDRESS="127.0.0.1" cd tests ++++++ baselibs.conf ++++++ --- /var/tmp/diff_new_pack.t11LAR/_old 2022-06-29 16:00:30.096548412 +0200 +++ /var/tmp/diff_new_pack.t11LAR/_new 2022-06-29 16:00:30.100548417 +0200 @@ -1,5 +1,5 @@ mozilla-nss - requires "mozilla-nspr-<targettype> >= 4.32" + requires "mozilla-nspr-<targettype> >= 4.34" requires "libfreebl3-<targettype>" requires "libsoftokn3-<targettype>" requires "libnssckbi.so" ++++++ nss-3.78.1.tar.gz -> nss-3.79.tar.gz ++++++ /work/SRC/openSUSE:Factory/mozilla-nss/nss-3.78.1.tar.gz /work/SRC/openSUSE:Factory/.mozilla-nss.new.1548/nss-3.79.tar.gz differ: char 5, line 1 ++++++ nss-fips-180-3-csp-clearing.patch ++++++ Index: nss/lib/freebl/pqg.c =================================================================== --- nss.orig/lib/freebl/pqg.c +++ nss/lib/freebl/pqg.c @@ -1232,6 +1232,9 @@ cleanup: MP_TO_SEC_ERROR(err); rv = SECFailure; } + if (rv != SECSuccess) { + mp_zero(G); + } return rv; } Index: nss/lib/softoken/sftkdb.c =================================================================== --- nss.orig/lib/softoken/sftkdb.c +++ nss/lib/softoken/sftkdb.c @@ -1506,7 +1506,7 @@ loser: PORT_ZFree(data, dataSize); } if (arena) { - PORT_FreeArena(arena, PR_FALSE); + PORT_FreeArena(arena, PR_TRUE); } return crv; } Index: nss/lib/softoken/sftkpwd.c =================================================================== --- nss.orig/lib/softoken/sftkpwd.c +++ nss/lib/softoken/sftkpwd.c @@ -1439,7 +1439,7 @@ loser: PORT_ZFree(newKey.data, newKey.len); } if (result) { - SECITEM_FreeItem(result, PR_TRUE); + SECITEM_ZfreeItem(result, PR_TRUE); } if (rv != SECSuccess) { (*keydb->db->sdb_Abort)(keydb->db); ++++++ nss-fips-approved-crypto-non-ec.patch ++++++ --- /var/tmp/diff_new_pack.t11LAR/_old 2022-06-29 16:00:30.196548562 +0200 +++ /var/tmp/diff_new_pack.t11LAR/_new 2022-06-29 16:00:30.200548568 +0200 @@ -258,7 +258,7 @@ =================================================================== --- nss.orig/lib/freebl/fips.h +++ nss/lib/freebl/fips.h -@@ -8,8 +8,20 @@ +@@ -8,9 +8,21 @@ #ifndef FIPS_H #define FIPS_H @@ -267,13 +267,14 @@ + +#define IN_FIPS_RETURN(rv) \ + do { \ -+ if (FIPS_mode()) { \ ++ if (FIPS_mode_allow_tests()) { \ + PORT_SetError(SEC_ERROR_INVALID_ALGORITHM); \ + return rv; \ + } \ + } while (0) + int FIPS_mode(void); + int FIPS_mode_allow_tests(void); char* FIPS_rngDev(void); +PRBool FIPS_hashAlgApproved(HASH_HashType hashAlg); @@ -495,4 +496,100 @@ PORT_Memset(crsrdata, 0, sizeof crsrdata); crv = CKR_HOST_MEMORY; break; +Index: nss/lib/freebl/desblapi.c +=================================================================== +--- nss.orig/lib/freebl/desblapi.c ++++ nss/lib/freebl/desblapi.c +@@ -18,6 +18,8 @@ + #include <stddef.h> + #include "secerr.h" + ++#include "fips.h" ++ + #if defined(NSS_X86_OR_X64) + /* Intel X86 CPUs do unaligned loads and stores without complaint. */ + #define COPY8B(to, from, ptr) \ +@@ -136,6 +138,8 @@ DES_EDE3CBCDe(DESContext *cx, BYTE *out, + DESContext * + DES_AllocateContext(void) + { ++ IN_FIPS_RETURN(NULL); ++ + return PORT_ZNew(DESContext); + } + +@@ -145,12 +149,16 @@ DES_InitContext(DESContext *cx, const un + unsigned int unused) + { + DESDirection opposite; ++ ++ IN_FIPS_RETURN(SECFailure); ++ + if (!cx) { + PORT_SetError(SEC_ERROR_INVALID_ARGS); + return SECFailure; + } + cx->direction = encrypt ? DES_ENCRYPT : DES_DECRYPT; + opposite = encrypt ? DES_DECRYPT : DES_ENCRYPT; ++ + switch (mode) { + case NSS_DES: /* DES ECB */ + DES_MakeSchedule(cx->ks0, key, cx->direction); +@@ -201,8 +209,13 @@ DES_InitContext(DESContext *cx, const un + DESContext * + DES_CreateContext(const BYTE *key, const BYTE *iv, int mode, PRBool encrypt) + { +- DESContext *cx = PORT_ZNew(DESContext); +- SECStatus rv = DES_InitContext(cx, key, 0, iv, mode, encrypt, 0); ++ DESContext *cx; ++ SECStatus rv; ++ ++ IN_FIPS_RETURN(NULL); ++ ++ cx = PORT_ZNew(DESContext); ++ rv = DES_InitContext(cx, key, 0, iv, mode, encrypt, 0); + + if (rv != SECSuccess) { + PORT_ZFree(cx, sizeof *cx); +@@ -214,6 +227,8 @@ DES_CreateContext(const BYTE *key, const + void + DES_DestroyContext(DESContext *cx, PRBool freeit) + { ++ IN_FIPS_RETURN(); ++ + if (cx) { + memset(cx, 0, sizeof *cx); + if (freeit) +@@ -225,6 +240,7 @@ SECStatus + DES_Encrypt(DESContext *cx, BYTE *out, unsigned int *outLen, + unsigned int maxOutLen, const BYTE *in, unsigned int inLen) + { ++ IN_FIPS_RETURN(SECFailure); + + if ((inLen % 8) != 0 || maxOutLen < inLen || !cx || + cx->direction != DES_ENCRYPT) { +@@ -242,6 +258,7 @@ SECStatus + DES_Decrypt(DESContext *cx, BYTE *out, unsigned int *outLen, + unsigned int maxOutLen, const BYTE *in, unsigned int inLen) + { ++ IN_FIPS_RETURN(SECFailure); + + if ((inLen % 8) != 0 || maxOutLen < inLen || !cx || + cx->direction != DES_DECRYPT) { +Index: nss/lib/softoken/fips_algorithms.h +=================================================================== +--- nss.orig/lib/softoken/fips_algorithms.h ++++ nss/lib/softoken/fips_algorithms.h +@@ -111,8 +111,11 @@ SFTKFIPSAlgorithmList sftk_fips_mechs[] + { CKM_AES_KEY_WRAP, { AES_FB_KEY, CKF_ENC }, AES_FB_STEP, SFTKFIPSNone }, + { CKM_AES_KEY_WRAP_PAD, { AES_FB_KEY, CKF_ENC }, AES_FB_STEP, SFTKFIPSNone }, + { CKM_AES_KEY_WRAP_KWP, { AES_FB_KEY, CKF_ENC }, AES_FB_STEP, SFTKFIPSNone }, ++#if 0 ++ /* Not approved in FIPS mode */ + { CKM_AES_XCBC_MAC_96, { 96, 96, CKF_SGN }, 1, SFTKFIPSNone }, + { CKM_AES_XCBC_MAC, { 128, 128, CKF_SGN }, 1, SFTKFIPSNone }, ++#endif + /* ------------------------- Hashing Operations ----------------------- */ + { CKM_SHA224, { 0, 0, CKF_HSH }, 1, SFTKFIPSNone }, + { CKM_SHA224_HMAC, { 112, 224, CKF_SGN }, 1, SFTKFIPSNone }, ++++++ nss-fips-constructor-self-tests.patch ++++++ --- /var/tmp/diff_new_pack.t11LAR/_old 2022-06-29 16:00:30.228548611 +0200 +++ /var/tmp/diff_new_pack.t11LAR/_new 2022-06-29 16:00:30.232548616 +0200 @@ -67,7 +67,7 @@ =================================================================== --- /dev/null +++ nss/lib/freebl/fips-selftest.inc -@@ -0,0 +1,306 @@ +@@ -0,0 +1,355 @@ +/* + * PKCS #11 FIPS Power-Up Self Test - common stuff. + * @@ -118,6 +118,9 @@ + +static int fips_wanted = -1; + ++static int fips_is_env = 0; ++static int fips_ignore_checksums = 0; ++ +/* debug messages are sent to stderr */ +static void +debug(const char *fmt,...) @@ -209,6 +212,21 @@ + return PR_FALSE; +} + ++static PRBool ++getIgnoreChecksumsEnv(void) ++{ ++ char *checksumEnv = getenv("NSS_IGNORE_CHECKSUMS"); ++ if (!checksumEnv) { ++ return PR_FALSE; ++ } ++ if ((strcasecmp(checksumEnv,"true") == 0) || ++ (strcasecmp(checksumEnv,"on") == 0) || ++ (strcasecmp(checksumEnv,"1") == 0)) { ++ return PR_TRUE; ++ } ++ return PR_FALSE; ++} ++ +static int +fips_isWantedEnv(void) +{ @@ -222,10 +240,54 @@ +#ifdef LINUX + fips_requests += fips_isWantedProc(); +#endif ++ if (fips_requests < 1) ++ { ++ fips_is_env = 1; ++ fips_ignore_checksums = getIgnoreChecksumsEnv(); ++ } + fips_requests += fips_isWantedEnv(); ++ + return fips_requests; +} + ++static PRBool ++fips_check_signature_external (const char *full_lib_name, int *err) ++{ ++ char *p0, *p1; ++ char *ld_path; ++ PRBool rv = PR_FALSE; ++ ++ p0 = getenv ("LD_LIBRARY_PATH"); ++ p0 = ld_path = strdup (p0 ? p0 : ""); ++ ++ for (p1 = strchr (p0, ':'); p1 && !rv; p1 = strchr (p0, ':')) ++ { ++ char *path; ++ ++ *p1 = '\0'; ++ path = malloc (strlen (p0) + strlen (full_lib_name) + 2); ++ strcpy (path, p0); ++ strcat (path, "/"); ++ strcat (path, full_lib_name); ++ ++ rv = BLAPI_SHVerifyFile (path, err); ++ ++ free (path); ++ p0 = p1 + 1; ++ } ++ ++ if (!rv) ++ { ++ char *path = malloc (strlen ("/usr/lib64/") + strlen (full_lib_name) + 1); ++ strcpy (path, "/usr/lib64/"); ++ strcat (path, full_lib_name); ++ rv = BLAPI_SHVerifyFile (path, err); ++ } ++ ++ free (ld_path); ++ return rv; ++} ++ +/* check integrity signatures (if present) */ +static fips_check_status +fips_checkSignature(char *libName, PRFuncPtr addr) @@ -249,24 +311,11 @@ + l -= strlen(libName); + strncat(full_lib_name, SHLIB_VERSION"."SHLIB_SUFFIX, l); + l -= strlen(SHLIB_VERSION"."SHLIB_SUFFIX); -+#if 1 -+ if (NULL == addr) { -+ char full_path [PATH_MAX+1]; -+ -+ full_path [0] = '\0'; -+ l = PATH_MAX; -+ strncat (full_path, "/usr/lib64/", l); -+ l -= strlen ("/usr/lib64/"); -+ strncat (full_path, full_lib_name, l); -+ l -= strlen (full_lib_name); + -+ rv = BLAPI_SHVerifyFile(full_path, &err); -+ } ++ if (NULL == addr) ++ rv = fips_check_signature_external (full_lib_name, &err); + else + rv = BLAPI_SHVerify(full_lib_name, addr, &err); -+#else -+ rv = 1; -+#endif + } + + if (rv) { @@ -390,7 +439,7 @@ =================================================================== --- /dev/null +++ nss/lib/freebl/fips.h -@@ -0,0 +1,15 @@ +@@ -0,0 +1,16 @@ +/* + * PKCS #11 FIPS Power-Up Self Test. + * @@ -402,6 +451,7 @@ +#define FIPS_H + +int FIPS_mode(void); ++int FIPS_mode_allow_tests(void); +char* FIPS_rngDev(void); + +#endif @@ -591,7 +641,7 @@ } /* -@@ -2251,28 +2279,91 @@ bl_startup_tests(void) +@@ -2251,28 +2279,104 @@ bl_startup_tests(void) * power on selftest failed. */ SECStatus @@ -648,6 +698,19 @@ + } +} + ++/* Returns the FIPS mode we are running in. If the tests have not completed yet, ++ * return FALSE. This allows testing of modules that are not allowed in FIPS ++ * mode. */ ++int ++FIPS_mode_allow_tests(void) ++{ ++ int fips; ++ ++ fips = (-1 != fips_state) ? fips_state : 0; ++ ++ return fips; ++} ++ +/* returns string specifying what system RNG file to use for seeding */ +char * +FIPS_rngDev(void) @@ -943,7 +1006,7 @@ =================================================================== --- /dev/null +++ nss/lib/softoken/fips.c -@@ -0,0 +1,36 @@ +@@ -0,0 +1,40 @@ +#include "../freebl/fips-selftest.inc" + +#include "fips.h" @@ -971,9 +1034,13 @@ +{ + fips_state = fips_initTest("softokn", (PRFuncPtr)fips_initTestSoftoken, fips_checkCryptoSoftoken); + -+ /* The legacy DB must be checked unconditionally in FIPS mode. */ ++ /* The legacy DB must be checked unconditionally in FIPS mode. As an exception, ++ * this can be turned off for the build-time tests using the env var ++ * NSS_IGNORE_CHECKSUMS. This is necessary because the files cannot be ++ * located before they're installed. It only works if FIPS mode is enabled ++ * via NSS_FIPS=1, not if it's set in /proc. */ + -+ if (fips_state) ++ if (fips_state && !(fips_is_env && fips_ignore_checksums)) + { + fips_state = fips_initTest("nssdbm", (PRFuncPtr) NULL, NULL); + } ++++++ nss-fips-pbkdf-kat-compliance.patch ++++++ Index: nss/lib/softoken/lowpbe.c =================================================================== --- nss.orig/lib/softoken/lowpbe.c +++ nss/lib/softoken/lowpbe.c @@ -1745,7 +1745,7 @@ loser: return ret_algid; } -#define TEST_KEY "pbkdf test key" +#define TEST_KEY "qrfhfgkeWKZsYyLfUddaKQKLGhwqjQhNCiAdfweKEPaRf" SECStatus sftk_fips_pbkdf_PowerUpSelfTests(void) { @@ -1755,17 +1755,22 @@ sftk_fips_pbkdf_PowerUpSelfTests(void) unsigned char iteration_count = 5; unsigned char keyLen = 64; char *inKeyData = TEST_KEY; - static const unsigned char saltData[] = - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }; + static const unsigned char saltData[] = { + 0x11, 0x39, 0x93, 0x54, 0x1C, 0xDD, 0xD7, 0x18, + 0x2F, 0x4A, 0xC1, 0x14, 0x03, 0x7A, 0x0B, 0x64, + 0x48, 0x99, 0xF4, 0x6D, 0xB7, 0x48, 0xE3, 0x3B, + 0x91, 0xBF, 0x65, 0xA9, 0x26, 0x83, 0xE8, 0x22 + }; + static const unsigned char pbkdf_known_answer[] = { - 0x31, 0xf0, 0xe5, 0x39, 0x9f, 0x39, 0xb9, 0x29, - 0x68, 0xac, 0xf2, 0xe9, 0x53, 0x9b, 0xb4, 0x9c, - 0x28, 0x59, 0x8b, 0x5c, 0xd8, 0xd4, 0x02, 0x37, - 0x18, 0x22, 0xc1, 0x92, 0xd0, 0xfa, 0x72, 0x90, - 0x2c, 0x8d, 0x19, 0xd4, 0x56, 0xfb, 0x16, 0xfa, - 0x8d, 0x5c, 0x06, 0x33, 0xd1, 0x5f, 0x17, 0xb1, - 0x22, 0xd9, 0x9c, 0xaf, 0x5e, 0x3f, 0xf3, 0x66, - 0xc6, 0x14, 0xfe, 0x83, 0xfa, 0x1a, 0x2a, 0xc5 + 0x44, 0xd2, 0xae, 0x2d, 0x45, 0xb9, 0x42, 0x70, + 0xcb, 0x3e, 0x40, 0xc5, 0xcf, 0x36, 0x9b, 0x5f, + 0xfc, 0x64, 0xb1, 0x10, 0x18, 0x4d, 0xd8, 0xb6, + 0x71, 0xa3, 0xc4, 0x4f, 0x1d, 0xa7, 0x8f, 0xa5, + 0x0c, 0x4b, 0x13, 0xce, 0x2f, 0x2b, 0x48, 0xe0, + 0xfc, 0x10, 0x6d, 0xf4, 0xfb, 0x71, 0x1b, 0x0e, + 0x33, 0x2c, 0x43, 0x43, 0xe1, 0x77, 0x16, 0xf5, + 0x1e, 0x96, 0xcd, 0x93, 0x21, 0xb8, 0x78, 0x32 }; sftk_PBELockInit(); @@ -1794,11 +1799,12 @@ sftk_fips_pbkdf_PowerUpSelfTests(void) * for NSSPKCS5_PBKDF2 */ pbe_params.iter = iteration_count; pbe_params.keyLen = keyLen; - pbe_params.hashType = HASH_AlgSHA256; + pbe_params.hashType = HASH_AlgSHA384; pbe_params.pbeType = NSSPKCS5_PBKDF2; pbe_params.is2KeyDES = PR_FALSE; result = nsspkcs5_ComputeKeyAndIV(&pbe_params, &inKey, NULL, PR_FALSE); + if ((result == NULL) || (result->len != sizeof(pbkdf_known_answer)) || (PORT_Memcmp(result->data, pbkdf_known_answer, sizeof(pbkdf_known_answer)) != 0)) { SECITEM_FreeItem(result, PR_TRUE); ++++++ nss-fips-tests-enable-fips.patch ++++++ Index: nss/tests/cert/cert.sh =================================================================== --- nss.orig/tests/cert/cert.sh +++ nss/tests/cert/cert.sh @@ -1353,6 +1353,11 @@ cert_stresscerts() ############################################################################## cert_fips() { + OLD_FIPS_MODE=`echo ${NSS_FIPS}` + OLD_CHECKSUMS_MODE=`echo ${NSS_IGNORE_CHECKSUMS}` + export NSS_FIPS=1 + export NSS_IGNORE_CHECKSUMS=1 + CERTFAILED=0 echo "$SCRIPTNAME: Creating FIPS 140 DSA Certificates ==============" cert_init_cert "${FIPSDIR}" "FIPS PUB 140 Test Certificate" 1000 "${D_FIPS}" @@ -1393,6 +1398,8 @@ MODSCRIPT cert_log "SUCCESS: FIPS passed" fi + export NSS_FIPS=${OLD_FIPS_MODE} + export NSS_IGNORE_CHECKSUMS=${OLD_CHECKSUMS_MODE} } ########################## cert_rsa_exponent ################################# ++++++ nss-fips-tests-skip.patch ++++++ Index: nss/tests/lowhash/lowhash.sh =================================================================== --- nss.orig/tests/lowhash/lowhash.sh +++ nss/tests/lowhash/lowhash.sh @@ -61,11 +61,13 @@ lowhash_test() ! -f ${BINDIR}/lowhashtest${PROG_SUFFIX} ]; then echo "freebl lowhash not supported in this plaform." else - TESTS="MD5 SHA1 SHA224 SHA256 SHA384 SHA512" + TESTS_FIPS_0="MD5 SHA1 SHA224 SHA256 SHA384 SHA512" + TESTS_FIPS_1="SHA224 SHA256 SHA384 SHA512" OLD_MODE=`echo ${NSS_FIPS}` for fips_mode in 0 1; do echo "lowhashtest with fips mode=${fips_mode}" export NSS_FIPS=${fips_mode} + eval TESTS=\${TESTS_FIPS_${fips_mode}} for TEST in ${TESTS} do echo "lowhashtest ${TEST}"