13053eadb0
- Added nss-bmo1930797.patch to fix failing tests in testsuite - update to NSS 3.106 * bmo#1925975 - NSS 3.106 should be distributed with NSPR 4.36. * bmo#1923767 - pk12util: improve error handling in p12U_ReadPKCS12File. * bmo#1899402 - Correctly destroy bulkkey in error scenario. * bmo#1919997 - PKCS7 fuzz target, r=djackson,nss-reviewers. * bmo#1923002 - Extract certificates with handshake collection script. * bmo#1923006 - Specify len_control for fuzz targets. * bmo#1923280 - Fix memory leak in dumpCertificatePEM. * bmo#1102981 - Fix UBSan errors for SECU_PrintCertificate and SECU_PrintCertificateBasicInfo. * bmo#1921528 - add new error codes to mozilla::pkix for Firefox to use. * bmo#1921768 - allow null phKey in NSC_DeriveKey. * bmo#1921801 - Only create seed corpus zip from existing corpus. * bmo#1826035 - Use explicit allowlist for for KDF PRFS. * bmo#1920138 - Increase optimization level for fuzz builds. * bmo#1920470 - Remove incorrect assert. * bmo#1914870 - Use libFuzzer options from fuzz/options/\*.options in CI. * bmo#1920945 - Polish corpus collection for automation. * bmo#1917572 - Detect new and unfuzzed SSL options. * bmo#1804646 - PKCS12 fuzzing target. - requires NSPR 4.36 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/mozilla-nss?expand=0&rev=465
43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
Index: nss/lib/softoken/sftkmessage.c
|
|
===================================================================
|
|
--- nss.orig/lib/softoken/sftkmessage.c
|
|
+++ nss/lib/softoken/sftkmessage.c
|
|
@@ -183,6 +183,37 @@ sftk_CryptMessage(CK_SESSION_HANDLE hSes
|
|
if (crv != CKR_OK)
|
|
return crv;
|
|
|
|
+ if (context->isFIPS && (contextType == SFTK_MESSAGE_ENCRYPT)) {
|
|
+ if ((pParameter == NULL) || (ulParameterLen != sizeof(CK_GCM_MESSAGE_PARAMS))) {
|
|
+ context->isFIPS = PR_FALSE;
|
|
+ } else {
|
|
+ CK_GCM_MESSAGE_PARAMS *p = (CK_GCM_MESSAGE_PARAMS *)pParameter;
|
|
+ switch (p->ivGenerator) {
|
|
+ default:
|
|
+ case CKG_NO_GENERATE:
|
|
+ context->isFIPS = PR_FALSE;
|
|
+ break;
|
|
+ case CKG_GENERATE_RANDOM:
|
|
+ if ((p->ulIvLen < 96 / PR_BITS_PER_BYTE) ||
|
|
+ (p->ulIvFixedBits != 0)) {
|
|
+ context->isFIPS = PR_FALSE;
|
|
+ }
|
|
+ break;
|
|
+ case CKG_GENERATE_COUNTER_XOR:
|
|
+ if ((p->ulIvLen != 96 / PR_BITS_PER_BYTE) ||
|
|
+ (p->ulIvFixedBits != 32)) {
|
|
+ context->isFIPS = PR_FALSE;
|
|
+ }
|
|
+ break;
|
|
+ case CKG_GENERATE_COUNTER:
|
|
+ if ((p->ulIvFixedBits < 32) ||
|
|
+ ((p->ulIvLen * PR_BITS_PER_BYTE - p->ulIvFixedBits) < 32)) {
|
|
+ context->isFIPS = PR_FALSE;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
if (!pOuttext) {
|
|
*pulOuttextLen = ulIntextLen;
|
|
return CKR_OK;
|