Resolves: rhbz#1972928
Rebase nss to 3.67
This commit is contained in:
parent
af6d77e2b5
commit
fed7d55f1a
2
.gitignore
vendored
2
.gitignore
vendored
@ -61,3 +61,5 @@ TestUser51.cert
|
|||||||
/nss-3.62.tar.gz
|
/nss-3.62.tar.gz
|
||||||
/nss-3.63.tar.gz
|
/nss-3.63.tar.gz
|
||||||
/nspr-4.30.tar.gz
|
/nspr-4.30.tar.gz
|
||||||
|
/nss-3.67.tar.gz
|
||||||
|
/nspr-4.31.tar.gz
|
||||||
|
39
nss-3.44-kbkdf-coverity.patch
Normal file
39
nss-3.44-kbkdf-coverity.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
diff -up ./lib/softoken/kbkdf.c.coverity ./lib/softoken/kbkdf.c
|
||||||
|
--- ./lib/softoken/kbkdf.c.coverity 2019-12-03 15:33:43.047732312 -0800
|
||||||
|
+++ ./lib/softoken/kbkdf.c 2019-12-03 15:39:40.982578357 -0800
|
||||||
|
@@ -534,6 +534,10 @@ CK_RV kbkdf_CreateKey(CK_SESSION_HANDLE
|
||||||
|
PR_ASSERT(derived_key != NULL);
|
||||||
|
PR_ASSERT(derived_key->phKey != NULL);
|
||||||
|
|
||||||
|
+ if (slot == NULL) {
|
||||||
|
+ return CKR_SESSION_HANDLE_INVALID;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Create the new key object for this additional derived key. */
|
||||||
|
key = sftk_NewObject(slot);
|
||||||
|
if (key == NULL) {
|
||||||
|
@@ -589,7 +593,9 @@ done:
|
||||||
|
sftk_FreeObject(key);
|
||||||
|
|
||||||
|
/* Doesn't do anything. */
|
||||||
|
- sftk_FreeSession(session);
|
||||||
|
+ if (session) {
|
||||||
|
+ sftk_FreeSession(session);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
diff -up ./lib/softoken/sftkhmac.c.coverity ./lib/softoken/sftkhmac.c
|
||||||
|
--- ./lib/softoken/sftkhmac.c.coverity 2019-12-03 15:40:06.108848341 -0800
|
||||||
|
+++ ./lib/softoken/sftkhmac.c 2019-12-03 15:41:04.919480267 -0800
|
||||||
|
@@ -232,7 +232,9 @@ sftk_MAC_Init(sftk_MACCtx *ctx, CK_MECHA
|
||||||
|
keyval->attrib.ulValueLen, isFIPS);
|
||||||
|
|
||||||
|
done:
|
||||||
|
- sftk_FreeAttribute(keyval);
|
||||||
|
+ if (keyval) {
|
||||||
|
+ sftk_FreeAttribute(keyval);
|
||||||
|
+ }
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
104
nss-3.53-fix-private_key_mac.patch
Normal file
104
nss-3.53-fix-private_key_mac.patch
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
diff --git a/lib/softoken/sftkpwd.c b/lib/softoken/sftkpwd.c
|
||||||
|
--- a/lib/softoken/sftkpwd.c
|
||||||
|
+++ b/lib/softoken/sftkpwd.c
|
||||||
|
@@ -277,17 +277,19 @@ sftkdb_DecryptAttribute(SFTKDBHandle *ha
|
||||||
|
*plain = nsspkcs5_CipherData(cipherValue.param, passKey, &cipherValue.value,
|
||||||
|
PR_FALSE, NULL);
|
||||||
|
if (*plain == NULL) {
|
||||||
|
rv = SECFailure;
|
||||||
|
goto loser;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If we are using aes 256, we need to check authentication as well.*/
|
||||||
|
- if ((type != CKT_INVALID_TYPE) && (cipherValue.alg == SEC_OID_AES_256_CBC)) {
|
||||||
|
+ if ((type != CKT_INVALID_TYPE) &&
|
||||||
|
+ (cipherValue.alg == SEC_OID_PKCS5_PBES2) &&
|
||||||
|
+ (cipherValue.param->encAlg == SEC_OID_AES_256_CBC)) {
|
||||||
|
SECItem signature;
|
||||||
|
unsigned char signData[SDB_MAX_META_DATA_LEN];
|
||||||
|
|
||||||
|
/* if we get here from the old legacy db, there is clearly an
|
||||||
|
* error, don't return the plaintext */
|
||||||
|
if (handle == NULL) {
|
||||||
|
rv = SECFailure;
|
||||||
|
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
|
||||||
|
@@ -299,17 +301,27 @@ sftkdb_DecryptAttribute(SFTKDBHandle *ha
|
||||||
|
rv = sftkdb_GetAttributeSignature(handle, handle, id, type,
|
||||||
|
&signature);
|
||||||
|
if (rv != SECSuccess) {
|
||||||
|
goto loser;
|
||||||
|
}
|
||||||
|
rv = sftkdb_VerifyAttribute(handle, passKey, CK_INVALID_HANDLE, type,
|
||||||
|
*plain, &signature);
|
||||||
|
if (rv != SECSuccess) {
|
||||||
|
- goto loser;
|
||||||
|
+ /* handle a bug where old versions of NSS misfiled the signature
|
||||||
|
+ * attribute on password update */
|
||||||
|
+ id |= SFTK_KEYDB_TYPE|SFTK_TOKEN_TYPE;
|
||||||
|
+ signature.len = sizeof(signData);
|
||||||
|
+ rv = sftkdb_GetAttributeSignature(handle, handle, id, type,
|
||||||
|
+ &signature);
|
||||||
|
+ if (rv != SECSuccess) {
|
||||||
|
+ goto loser;
|
||||||
|
+ }
|
||||||
|
+ rv = sftkdb_VerifyAttribute(handle, passKey, CK_INVALID_HANDLE,
|
||||||
|
+ type, *plain, &signature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
loser:
|
||||||
|
if (cipherValue.param) {
|
||||||
|
nsspkcs5_DestroyPBEParameter(cipherValue.param);
|
||||||
|
}
|
||||||
|
if (cipherValue.arena) {
|
||||||
|
@@ -1186,16 +1198,17 @@ sftk_updateEncrypted(PLArenaPool *arena,
|
||||||
|
};
|
||||||
|
const CK_ULONG privAttrCount = sizeof(privAttrTypes) / sizeof(privAttrTypes[0]);
|
||||||
|
|
||||||
|
// We don't know what attributes this object has, so we update them one at a
|
||||||
|
// time.
|
||||||
|
unsigned int i;
|
||||||
|
for (i = 0; i < privAttrCount; i++) {
|
||||||
|
// Read the old attribute in the clear.
|
||||||
|
+ CK_OBJECT_HANDLE sdbId = id & SFTK_OBJ_ID_MASK;
|
||||||
|
CK_ATTRIBUTE privAttr = { privAttrTypes[i], NULL, 0 };
|
||||||
|
CK_RV crv = sftkdb_GetAttributeValue(keydb, id, &privAttr, 1);
|
||||||
|
if (crv != CKR_OK) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ((privAttr.ulValueLen == -1) || (privAttr.ulValueLen == 0)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
@@ -1210,30 +1223,29 @@ sftk_updateEncrypted(PLArenaPool *arena,
|
||||||
|
if ((privAttr.ulValueLen == -1) || (privAttr.ulValueLen == 0)) {
|
||||||
|
return CKR_GENERAL_ERROR;
|
||||||
|
}
|
||||||
|
SECItem plainText;
|
||||||
|
SECItem *result;
|
||||||
|
plainText.data = privAttr.pValue;
|
||||||
|
plainText.len = privAttr.ulValueLen;
|
||||||
|
if (sftkdb_EncryptAttribute(arena, keydb, keydb->db, newKey,
|
||||||
|
- iterationCount, id, privAttr.type,
|
||||||
|
+ iterationCount, sdbId, privAttr.type,
|
||||||
|
&plainText, &result) != SECSuccess) {
|
||||||
|
return CKR_GENERAL_ERROR;
|
||||||
|
}
|
||||||
|
privAttr.pValue = result->data;
|
||||||
|
privAttr.ulValueLen = result->len;
|
||||||
|
// Clear sensitive data.
|
||||||
|
PORT_Memset(plainText.data, 0, plainText.len);
|
||||||
|
|
||||||
|
// Write the newly encrypted attributes out directly.
|
||||||
|
- CK_OBJECT_HANDLE newId = id & SFTK_OBJ_ID_MASK;
|
||||||
|
keydb->newKey = newKey;
|
||||||
|
keydb->newDefaultIterationCount = iterationCount;
|
||||||
|
- crv = (*keydb->db->sdb_SetAttributeValue)(keydb->db, newId, &privAttr, 1);
|
||||||
|
+ crv = (*keydb->db->sdb_SetAttributeValue)(keydb->db, sdbId, &privAttr, 1);
|
||||||
|
keydb->newKey = NULL;
|
||||||
|
if (crv != CKR_OK) {
|
||||||
|
return crv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return CKR_OK;
|
||||||
|
}
|
24
nss-3.53.1-measure-fix.patch
Normal file
24
nss-3.53.1-measure-fix.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up ./coreconf/config.gypi.orig ./coreconf/config.gypi
|
||||||
|
--- ./coreconf/config.gypi.orig 2020-06-16 15:50:59.000000000 -0700
|
||||||
|
+++ ./coreconf/config.gypi 2020-10-15 16:05:37.542761192 -0700
|
||||||
|
@@ -363,7 +363,7 @@
|
||||||
|
'_DEFAULT_SOURCE', # for <endian.h> functions, strdup, realpath, and getentropy
|
||||||
|
'_BSD_SOURCE', # for the above in glibc <= 2.19
|
||||||
|
'_POSIX_SOURCE', # for <signal.h>
|
||||||
|
- 'SQL_MEASURE_USE_TEMP_DIR', # use tmpdir for the access calls
|
||||||
|
+ 'SDB_MEASURE_USE_TEMP_DIR', # use tmpdir for the access calls
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
[ 'OS=="dragonfly" or OS=="freebsd"', {
|
||||||
|
diff -up ./coreconf/Linux.mk.orig ./coreconf/Linux.mk
|
||||||
|
--- ./coreconf/Linux.mk.orig 2020-10-15 16:05:04.794591674 -0700
|
||||||
|
+++ ./coreconf/Linux.mk 2020-10-15 16:05:37.543761197 -0700
|
||||||
|
@@ -21,7 +21,7 @@ ifeq ($(USE_PTHREADS),1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
DEFAULT_COMPILER = gcc
|
||||||
|
-DEFINES += -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -DSQL_MEASURE_USE_TEMP_DIR
|
||||||
|
+DEFINES += -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -DSDB_MEASURE_USE_TEMP_DIR
|
||||||
|
|
||||||
|
ifeq ($(OS_TARGET),Android)
|
||||||
|
ifndef ANDROID_NDK
|
16
nss-3.66-fix-gtest-parsing.patch
Normal file
16
nss-3.66-fix-gtest-parsing.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
diff -up ./tests/common/parsegtestreport.sed.new_gtest ./tests/common/parsegtestreport.sed
|
||||||
|
--- ./tests/common/parsegtestreport.sed.new_gtest 2021-06-17 16:26:49.361035662 -0700
|
||||||
|
+++ ./tests/common/parsegtestreport.sed 2021-06-17 16:49:08.512261136 -0700
|
||||||
|
@@ -1,8 +1,11 @@
|
||||||
|
/\<testcase/{
|
||||||
|
- s/^.* name="\([^"]*\)" value_param="\([^"]*\)" status="\([^"]*\)" time="[^"]*" classname="\([^"]*\)".*$/\3 '\4: \1 \2'/
|
||||||
|
+ s/^.* name="\([^"]*\)" value_param="\([^"]*\)" status="\([^"]*\)" time="[^"]*" classname="\([^"]*\).*$/\3 '\4: \1 \2'/
|
||||||
|
t end
|
||||||
|
s/^.* name="\([^"]*\)" status="\([^"]*\)" time="[^"]*" classname="\([^"]*\)".*$/\2 '\3: \1'/
|
||||||
|
t end
|
||||||
|
+ s/^.* name="\([^"]*\)" value_param="\([^"]*\)" status="\([^"]*\)" result="[^"]*" time="[^"]*" timestamp="[^"]*" classname="\([^"]*\)".*$/\3 '\4: \1 \2'/
|
||||||
|
+ t end
|
||||||
|
+ s/^.* name="\([^"]*\)" status="\([^"]*\)" result="[^"]*" time="[^"]*" timestamp="[^"]*" classname="\([^"]*\)".*$/\2 '\3: \1'/
|
||||||
|
}
|
||||||
|
d
|
||||||
|
: end
|
86
nss-3.66-no-small-primes.patch
Normal file
86
nss-3.66-no-small-primes.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
diff -up ./gtests/softoken_gtest/softoken_dh_vectors.h.orig ./gtests/softoken_gtest/softoken_dh_vectors.h
|
||||||
|
--- ./gtests/softoken_gtest/softoken_dh_vectors.h.orig 2021-06-02 16:57:50.557008790 -0700
|
||||||
|
+++ ./gtests/softoken_gtest/softoken_dh_vectors.h 2021-06-02 16:59:52.781735096 -0700
|
||||||
|
@@ -2872,7 +2872,7 @@ static const DhTestVector DH_TEST_VECTOR
|
||||||
|
{siBuffer, (unsigned char *)g2, sizeof(g2)},
|
||||||
|
{siBuffer, NULL, 0},
|
||||||
|
{siBuffer, NULL, 0},
|
||||||
|
- IKE_APPROVED,
|
||||||
|
+ SAFE_PRIME,
|
||||||
|
CLASS_1536},
|
||||||
|
{"IKE 2048",
|
||||||
|
{siBuffer, (unsigned char *)prime_ike_2048, sizeof(prime_ike_2048)},
|
||||||
|
@@ -2952,7 +2952,7 @@ static const DhTestVector DH_TEST_VECTOR
|
||||||
|
{siBuffer, (unsigned char *)sub2_prime_ike_1536,
|
||||||
|
sizeof(sub2_prime_ike_1536)},
|
||||||
|
{siBuffer, NULL, 0},
|
||||||
|
- IKE_APPROVED,
|
||||||
|
+ SAFE_PRIME,
|
||||||
|
CLASS_1536},
|
||||||
|
{"IKE 2048 with subprime",
|
||||||
|
{siBuffer, (unsigned char *)prime_ike_2048, sizeof(prime_ike_2048)},
|
||||||
|
diff -up ./lib/softoken/pkcs11c.c.orig ./lib/softoken/pkcs11c.c
|
||||||
|
--- ./lib/softoken/pkcs11c.c.orig 2021-05-28 02:50:43.000000000 -0700
|
||||||
|
+++ ./lib/softoken/pkcs11c.c 2021-06-02 16:52:01.196932757 -0700
|
||||||
|
@@ -5193,7 +5193,7 @@ sftk_PairwiseConsistencyCheck(CK_SESSION
|
||||||
|
/* subprime not supplied, In this case look it up.
|
||||||
|
* This only works with approved primes, but in FIPS mode
|
||||||
|
* that's the only kine of prime that will get here */
|
||||||
|
- subPrimePtr = sftk_VerifyDH_Prime(&prime);
|
||||||
|
+ subPrimePtr = sftk_VerifyDH_Prime(&prime,isFIPS);
|
||||||
|
if (subPrimePtr == NULL) {
|
||||||
|
crv = CKR_GENERAL_ERROR;
|
||||||
|
goto done;
|
||||||
|
@@ -8351,7 +8351,7 @@ NSC_DeriveKey(CK_SESSION_HANDLE hSession
|
||||||
|
|
||||||
|
/* if the prime is an approved prime, we can skip all the other
|
||||||
|
* checks. */
|
||||||
|
- subPrime = sftk_VerifyDH_Prime(&dhPrime);
|
||||||
|
+ subPrime = sftk_VerifyDH_Prime(&dhPrime,isFIPS);
|
||||||
|
if (subPrime == NULL) {
|
||||||
|
SECItem dhSubPrime;
|
||||||
|
/* If the caller set the subprime value, it means that
|
||||||
|
diff -up ./lib/softoken/pkcs11i.h.orig ./lib/softoken/pkcs11i.h
|
||||||
|
--- ./lib/softoken/pkcs11i.h.orig 2021-06-02 16:52:01.196932757 -0700
|
||||||
|
+++ ./lib/softoken/pkcs11i.h 2021-06-02 16:52:54.281248207 -0700
|
||||||
|
@@ -946,7 +946,7 @@ char **NSC_ModuleDBFunc(unsigned long fu
|
||||||
|
/* dh verify functions */
|
||||||
|
/* verify that dhPrime matches one of our known primes, and if so return
|
||||||
|
* it's subprime value */
|
||||||
|
-const SECItem *sftk_VerifyDH_Prime(SECItem *dhPrime);
|
||||||
|
+const SECItem *sftk_VerifyDH_Prime(SECItem *dhPrime, PRBool isFIPS);
|
||||||
|
/* check if dhSubPrime claims dhPrime is a safe prime. */
|
||||||
|
SECStatus sftk_IsSafePrime(SECItem *dhPrime, SECItem *dhSubPrime, PRBool *isSafe);
|
||||||
|
/* map an operation Attribute to a Mechanism flag */
|
||||||
|
diff -up ./lib/softoken/pkcs11u.c.orig ./lib/softoken/pkcs11u.c
|
||||||
|
--- ./lib/softoken/pkcs11u.c.orig 2021-06-02 16:54:23.387777705 -0700
|
||||||
|
+++ ./lib/softoken/pkcs11u.c 2021-06-02 16:54:51.012941866 -0700
|
||||||
|
@@ -2312,7 +2312,7 @@ sftk_handleSpecial(SFTKSlot *slot, CK_ME
|
||||||
|
if (crv != CKR_OK) {
|
||||||
|
return PR_FALSE;
|
||||||
|
}
|
||||||
|
- dhSubPrime = sftk_VerifyDH_Prime(&dhPrime);
|
||||||
|
+ dhSubPrime = sftk_VerifyDH_Prime(&dhPrime, PR_TRUE);
|
||||||
|
SECITEM_ZfreeItem(&dhPrime, PR_FALSE);
|
||||||
|
return (dhSubPrime) ? PR_TRUE : PR_FALSE;
|
||||||
|
}
|
||||||
|
diff -up ./lib/softoken/sftkdhverify.c.orig ./lib/softoken/sftkdhverify.c
|
||||||
|
--- ./lib/softoken/sftkdhverify.c.orig 2021-05-28 02:50:43.000000000 -0700
|
||||||
|
+++ ./lib/softoken/sftkdhverify.c 2021-06-02 16:52:01.196932757 -0700
|
||||||
|
@@ -1171,11 +1171,15 @@ static const SECItem subprime_tls_8192 =
|
||||||
|
* verify that dhPrime matches one of our known primes
|
||||||
|
*/
|
||||||
|
const SECItem *
|
||||||
|
-sftk_VerifyDH_Prime(SECItem *dhPrime)
|
||||||
|
+sftk_VerifyDH_Prime(SECItem *dhPrime, PRBool isFIPS)
|
||||||
|
{
|
||||||
|
/* use the length to decide which primes to check */
|
||||||
|
switch (dhPrime->len) {
|
||||||
|
case 1536 / PR_BITS_PER_BYTE:
|
||||||
|
+ /* don't accept 1536 bit primes in FIPS mode */
|
||||||
|
+ if (isFIPS) {
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
if (PORT_Memcmp(dhPrime->data, prime_ike_1536,
|
||||||
|
sizeof(prime_ike_1536)) == 0) {
|
||||||
|
return &subprime_ike_1536;
|
45
nss-3.67-fix-coverity-issues.patch
Normal file
45
nss-3.67-fix-coverity-issues.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
diff -up ./lib/pk11wrap/pk11cxt.c.coverity ./lib/pk11wrap/pk11cxt.c
|
||||||
|
--- ./lib/pk11wrap/pk11cxt.c.coverity 2021-06-18 09:36:19.499203028 -0700
|
||||||
|
+++ ./lib/pk11wrap/pk11cxt.c 2021-06-18 09:37:57.993765299 -0700
|
||||||
|
@@ -382,7 +382,7 @@ pk11_CreateNewContextInSlot(CK_MECHANISM
|
||||||
|
* of the connection.*/
|
||||||
|
context->fortezzaHack = PR_FALSE;
|
||||||
|
if (type == CKM_SKIPJACK_CBC64) {
|
||||||
|
- if (symKey->origin == PK11_OriginFortezzaHack) {
|
||||||
|
+ if (symKey && (symKey->origin == PK11_OriginFortezzaHack)) {
|
||||||
|
context->fortezzaHack = PR_TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -up ./lib/pk11wrap/pk11hpke.c.coverity ./lib/pk11wrap/pk11hpke.c
|
||||||
|
--- ./lib/pk11wrap/pk11hpke.c.coverity 2021-06-18 13:40:05.410644464 -0700
|
||||||
|
+++ ./lib/pk11wrap/pk11hpke.c 2021-06-18 13:42:40.627606469 -0700
|
||||||
|
@@ -1164,8 +1164,6 @@ PK11_HPKE_Seal(HpkeContext *cx, const SE
|
||||||
|
unsigned char tagBuf[HASH_LENGTH_MAX];
|
||||||
|
size_t tagLen;
|
||||||
|
unsigned int fixedBits;
|
||||||
|
- PORT_Assert(cx->baseNonce->len == sizeof(ivOut));
|
||||||
|
- PORT_Memcpy(ivOut, cx->baseNonce->data, cx->baseNonce->len);
|
||||||
|
|
||||||
|
/* aad may be NULL, PT may be zero-length but not NULL. */
|
||||||
|
if (!cx || !cx->aeadContext ||
|
||||||
|
@@ -1176,6 +1174,9 @@ PK11_HPKE_Seal(HpkeContext *cx, const SE
|
||||||
|
return SECFailure;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ PORT_Assert(cx->baseNonce->len == sizeof(ivOut));
|
||||||
|
+ PORT_Memcpy(ivOut, cx->baseNonce->data, cx->baseNonce->len);
|
||||||
|
+
|
||||||
|
tagLen = cx->aeadParams->tagLen;
|
||||||
|
maxOut = pt->len + tagLen;
|
||||||
|
fixedBits = (cx->baseNonce->len - 8) * 8;
|
||||||
|
diff -up ./lib/softoken/sftkike.c.coverity ./lib/softoken/sftkike.c
|
||||||
|
--- ./lib/softoken/sftkike.c.coverity 2021-06-18 09:33:59.633405513 -0700
|
||||||
|
+++ ./lib/softoken/sftkike.c 2021-06-18 09:34:20.305523382 -0700
|
||||||
|
@@ -1411,7 +1411,6 @@ sftk_fips_IKE_PowerUpSelfTests(void)
|
||||||
|
(outKeySize != sizeof(ike_known_sha256_prf_plus)) ||
|
||||||
|
(PORT_Memcmp(outKeyData, ike_known_sha256_prf_plus,
|
||||||
|
sizeof(ike_known_sha256_prf_plus)) != 0)) {
|
||||||
|
- PORT_ZFree(outKeyData, outKeySize);
|
||||||
|
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
|
||||||
|
return SECFailure;
|
||||||
|
}
|
120
nss-no-dbm-man-page.patch
Normal file
120
nss-no-dbm-man-page.patch
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
diff -up ./doc/certutil.xml.no-dbm ./doc/certutil.xml
|
||||||
|
--- ./doc/certutil.xml.no-dbm 2021-05-29 10:26:21.853386165 -0700
|
||||||
|
+++ ./doc/certutil.xml 2021-05-29 10:31:15.057058619 -0700
|
||||||
|
@@ -205,8 +205,7 @@ If this option is not used, the validity
|
||||||
|
<para><command>certutil</command> supports two types of databases: the legacy security databases (<filename>cert8.db</filename>, <filename>key3.db</filename>, and <filename>secmod.db</filename>) and new SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). </para>
|
||||||
|
<para>NSS recognizes the following prefixes:</para>
|
||||||
|
<itemizedlist>
|
||||||
|
- <listitem><para><command>sql:</command> requests the newer database</para></listitem>
|
||||||
|
- <listitem><para><command>dbm:</command> requests the legacy database</para></listitem>
|
||||||
|
+ <listitem><para><command>sql:</command> requests the sql-lite database</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
<para>If no prefix is specified the default type is retrieved from NSS_DEFAULT_DB_TYPE. If NSS_DEFAULT_DB_TYPE is not set then <command>sql:</command> is the default.</para>
|
||||||
|
</listitem>
|
||||||
|
@@ -1205,17 +1204,9 @@ BerkeleyDB. These new databases provide
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
-<para>Because the SQLite databases are designed to be shared, these are the <emphasis>shared</emphasis> database type. The shared database type is preferred; the legacy format is included for backward compatibility.</para>
|
||||||
|
+<para>Because the SQLite databases are designed to be shared, these are the <emphasis>shared</emphasis> database type. </para>
|
||||||
|
|
||||||
|
-<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type.
|
||||||
|
-Using the legacy databases must be manually specified by using the <command>dbm:</command> prefix with the given security directory. For example:</para>
|
||||||
|
-
|
||||||
|
-<programlisting>$ certutil -L -d dbm:/home/my/sharednssdb</programlisting>
|
||||||
|
-
|
||||||
|
-<para>To set the legacy database type as the default type for the tools, set the <envar>NSS_DEFAULT_DB_TYPE</envar> environment variable to <envar>dbm</envar>:</para>
|
||||||
|
-<programlisting>export NSS_DEFAULT_DB_TYPE="dbm"</programlisting>
|
||||||
|
-
|
||||||
|
-<para>This line can be set added to the <filename>~/.bashrc</filename> file to make the change permanent.</para>
|
||||||
|
+<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
diff -up ./doc/modutil.xml.no-dbm ./doc/modutil.xml
|
||||||
|
--- ./doc/modutil.xml.no-dbm 2021-05-29 10:26:21.854386171 -0700
|
||||||
|
+++ ./doc/modutil.xml 2021-05-29 10:28:23.293078869 -0700
|
||||||
|
@@ -151,7 +151,7 @@
|
||||||
|
<varlistentry>
|
||||||
|
<term>-dbdir directory</term>
|
||||||
|
<listitem><para>Specify the database directory in which to access or create security module database files.</para>
|
||||||
|
- <para><command>modutil</command> supports two types of databases: the legacy security databases (<filename>cert8.db</filename>, <filename>key3.db</filename>, and <filename>secmod.db</filename>) and SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). If the prefix <command>dbm:</command> is not used, then the tool assumes that the given databases are in SQLite format.</para></listitem>
|
||||||
|
+ <para><command>modutil</command> supports SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). </para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
@@ -689,15 +689,7 @@ BerkleyDB. These new databases provide m
|
||||||
|
|
||||||
|
<para>Because the SQLite databases are designed to be shared, these are the <emphasis>shared</emphasis> database type. The shared database type is preferred; the legacy format is included for backward compatibility.</para>
|
||||||
|
|
||||||
|
-<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type.
|
||||||
|
-Using the legacy databases must be manually specified by using the <command>dbm:</command> prefix with the given security directory. For example:</para>
|
||||||
|
-
|
||||||
|
-<programlisting>modutil -create -dbdir dbm:/home/my/sharednssdb</programlisting>
|
||||||
|
-
|
||||||
|
-<para>To set the legacy database type as the default type for the tools, set the <envar>NSS_DEFAULT_DB_TYPE</envar> environment variable to <envar>dbm</envar>:</para>
|
||||||
|
-<programlisting>export NSS_DEFAULT_DB_TYPE="dbm"</programlisting>
|
||||||
|
-
|
||||||
|
-<para>This line can be added to the <filename>~/.bashrc</filename> file to make the change permanent for the user.</para>
|
||||||
|
+<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type. </para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
diff -up ./doc/pk12util.xml.no-dbm ./doc/pk12util.xml
|
||||||
|
--- ./doc/pk12util.xml.no-dbm 2021-05-29 10:26:21.854386171 -0700
|
||||||
|
+++ ./doc/pk12util.xml 2021-05-29 10:28:23.293078869 -0700
|
||||||
|
@@ -90,7 +90,7 @@
|
||||||
|
<varlistentry>
|
||||||
|
<term>-d directory</term>
|
||||||
|
<listitem><para>Specify the database directory into which to import to or export from certificates and keys.</para>
|
||||||
|
- <para><command>pk12util</command> supports two types of databases: the legacy security databases (<filename>cert8.db</filename>, <filename>key3.db</filename>, and <filename>secmod.db</filename>) and new SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). If the prefix <command>dbm:</command> is not used, then the tool assumes that the given databases are in the SQLite format.</para></listitem>
|
||||||
|
+ <para><command>pk12util</command> supports SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). </para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
@@ -394,15 +394,7 @@ BerkleyDB. These new databases provide m
|
||||||
|
|
||||||
|
<para>Because the SQLite databases are designed to be shared, these are the <emphasis>shared</emphasis> database type. The shared database type is preferred; the legacy format is included for backward compatibility.</para>
|
||||||
|
|
||||||
|
-<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type
|
||||||
|
-Using the legacy databases must be manually specified by using the <command>dbm:</command> prefix with the given security directory. For example:</para>
|
||||||
|
-
|
||||||
|
-<programlisting># pk12util -i /tmp/cert-files/users.p12 -d dbm:/home/my/sharednssdb</programlisting>
|
||||||
|
-
|
||||||
|
-<para>To set the legacy database type as the default type for the tools, set the <envar>NSS_DEFAULT_DB_TYPE</envar> environment variable to <envar>dbm</envar>:</para>
|
||||||
|
-<programlisting>export NSS_DEFAULT_DB_TYPE="dbm"</programlisting>
|
||||||
|
-
|
||||||
|
-<para>This line can be set added to the <filename>~/.bashrc</filename> file to make the change permanent.</para>
|
||||||
|
+<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type. </para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
diff -up ./doc/signver.xml.no-dbm ./doc/signver.xml
|
||||||
|
--- ./doc/signver.xml.no-dbm 2021-05-29 10:26:21.854386171 -0700
|
||||||
|
+++ ./doc/signver.xml 2021-05-29 10:28:23.293078869 -0700
|
||||||
|
@@ -66,7 +66,7 @@
|
||||||
|
<varlistentry>
|
||||||
|
<term>-d <emphasis>directory</emphasis></term>
|
||||||
|
<listitem><para>Specify the database directory which contains the certificates and keys.</para>
|
||||||
|
- <para><command>signver</command> supports two types of databases: the legacy security databases (<filename>cert8.db</filename>, <filename>key3.db</filename>, and <filename>secmod.db</filename>) and new SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). If the prefix <command>dbm:</command> is not used, then the tool assumes that the given databases are in the SQLite format.</para></listitem>
|
||||||
|
+ <para><command>signver</command> supports SQLite databases (<filename>cert9.db</filename>, <filename>key4.db</filename>, and <filename>pkcs11.txt</filename>). </para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>-a</term>
|
||||||
|
@@ -155,15 +155,7 @@ BerkleyDB. These new databases provide m
|
||||||
|
|
||||||
|
<para>Because the SQLite databases are designed to be shared, these are the <emphasis>shared</emphasis> database type. The shared database type is preferred; the legacy format is included for backward compatibility.</para>
|
||||||
|
|
||||||
|
-<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type
|
||||||
|
-Using the legacy databases must be manually specified by using the <command>dbm:</command> prefix with the given security directory. For example:</para>
|
||||||
|
-
|
||||||
|
-<programlisting># signver -A -s <replaceable>signature</replaceable> -d dbm:/home/my/sharednssdb</programlisting>
|
||||||
|
-
|
||||||
|
-<para>To set the legacy database type as the default type for the tools, set the <envar>NSS_DEFAULT_DB_TYPE</envar> environment variable to <envar>dbm</envar>:</para>
|
||||||
|
-<programlisting>export NSS_DEFAULT_DB_TYPE="dbm"</programlisting>
|
||||||
|
-
|
||||||
|
-<para>This line can be added to the <filename>~/.bashrc</filename> file to make the change permanent for the user.</para>
|
||||||
|
+<para>By default, the tools (<command>certutil</command>, <command>pk12util</command>, <command>modutil</command>) assume that the given security databases use the SQLite type.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
@ -26,27 +26,18 @@ diff --git a/cmd/modutil/install.c b/cmd/modutil/install.c
|
|||||||
diff --git a/cmd/signtool/util.c b/cmd/signtool/util.c
|
diff --git a/cmd/signtool/util.c b/cmd/signtool/util.c
|
||||||
--- a/cmd/signtool/util.c
|
--- a/cmd/signtool/util.c
|
||||||
+++ b/cmd/signtool/util.c
|
+++ b/cmd/signtool/util.c
|
||||||
@@ -132,17 +132,20 @@ rm_dash_r(char *path)
|
@@ -138,6 +138,12 @@ rm_dash_r(char *path)
|
||||||
if (!dir) {
|
|
||||||
PR_fprintf(errorFD, "Error: Unable to open directory %s.\n", path);
|
|
||||||
errorCount++;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Recursively delete all entries in the directory */
|
/* Recursively delete all entries in the directory */
|
||||||
while ((entry = PR_ReadDir(dir, PR_SKIP_BOTH)) != NULL) {
|
while ((entry = PR_ReadDir(dir, PR_SKIP_BOTH)) != NULL) {
|
||||||
- sprintf(filename, "%s/%s", path, entry->name);
|
sprintf(filename, "%s/%s", path, entry->name);
|
||||||
+ if (snprintf(filename, sizeof(filename), "%s/%s", path, entry->name) >= sizeof(filename)) {
|
+ if (snprintf(filename, sizeof(filename), "%s/%s", path, entry->name
|
||||||
|
+) >= sizeof(filename)) {
|
||||||
+ errorCount++;
|
+ errorCount++;
|
||||||
|
+ PR_CloseDir(dir);
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
if (rm_dash_r(filename))
|
if (rm_dash_r(filename)) {
|
||||||
return -1;
|
PR_CloseDir(dir);
|
||||||
}
|
|
||||||
|
|
||||||
if (PR_CloseDir(dir) != PR_SUCCESS) {
|
|
||||||
PR_fprintf(errorFD, "Error: Could not close %s.\n", path);
|
|
||||||
errorCount++;
|
|
||||||
return -1;
|
return -1;
|
||||||
diff --git a/lib/libpkix/pkix/util/pkix_list.c b/lib/libpkix/pkix/util/pkix_list.c
|
diff --git a/lib/libpkix/pkix/util/pkix_list.c b/lib/libpkix/pkix/util/pkix_list.c
|
||||||
--- a/lib/libpkix/pkix/util/pkix_list.c
|
--- a/lib/libpkix/pkix/util/pkix_list.c
|
||||||
|
37
nss.spec
37
nss.spec
@ -1,9 +1,9 @@
|
|||||||
%global nspr_version 4.30.0
|
%global nspr_version 4.31.0
|
||||||
# NOTE: To avoid NVR clashes of nspr* packages:
|
# NOTE: To avoid NVR clashes of nspr* packages:
|
||||||
# - reset %%{nspr_release} to 1, when updating %%{nspr_version}
|
# - reset %%{nspr_release} to 1, when updating %%{nspr_version}
|
||||||
# - increment %%{nspr_version}, when updating the NSS part only
|
# - increment %%{nspr_version}, when updating the NSS part only
|
||||||
%global nspr_release 2
|
%global nspr_release 1
|
||||||
%global nss_version 3.63.0
|
%global nss_version 3.67.0
|
||||||
# only need to update this as we added new
|
# only need to update this as we added new
|
||||||
# algorithms under nss policy control
|
# algorithms under nss policy control
|
||||||
%global crypto_policies_version 20210118
|
%global crypto_policies_version 20210118
|
||||||
@ -122,17 +122,33 @@ Patch2: nss-539183.patch
|
|||||||
# but it doesn't hurt to keep it.
|
# but it doesn't hurt to keep it.
|
||||||
Patch4: iquote.patch
|
Patch4: iquote.patch
|
||||||
Patch12: nss-signtool-format.patch
|
Patch12: nss-signtool-format.patch
|
||||||
%if 0%{?fedora} < 34
|
|
||||||
%if 0%{?rhel} < 9
|
|
||||||
Patch20: nss-gcm-param-default-pkcs11v2.patch
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
# can drop this patch when the underlying btrfs/sqlite issue is solved
|
# can drop this patch when the underlying btrfs/sqlite issue is solved
|
||||||
Patch30: nss-fedora-btrf-sql-hack.patch
|
Patch30: nss-fedora-btrf-sql-hack.patch
|
||||||
# connect our shared library to the build root loader flags (needed for -relro)
|
# connect our shared library to the build root loader flags (needed for -relro)
|
||||||
Patch31: nss-dso-ldflags.patch
|
Patch31: nss-dso-ldflags.patch
|
||||||
# keep RHEL 8 semantics of disabling md4 and md5 even if the env variable is set
|
# keep RHEL 8 semantics of disabling md4 and md5 even if the env variable is set
|
||||||
Patch32: nss-disable-md5.patch
|
Patch32: nss-disable-md5.patch
|
||||||
|
# dbm is disabled on RHEL9, make the man pages reflect that
|
||||||
|
%if %{with dbm}
|
||||||
|
%else
|
||||||
|
Patch33: nss-no-dbm-man-page.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Patches that should be upstreamed, and (hopefully) will disappear next
|
||||||
|
# rebase
|
||||||
|
# Need upstream bug
|
||||||
|
Patch50: nss-3.44-kbkdf-coverity.patch
|
||||||
|
# no upsteam bug yet
|
||||||
|
Patch51: nss-3.53-fix-private_key_mac.patch
|
||||||
|
# no upstream bug yet
|
||||||
|
Patch52: nss-3.53.1-measure-fix.patch
|
||||||
|
# no upstream bug yet
|
||||||
|
Patch53: nss-3.66-no-small-primes.patch
|
||||||
|
# no upstream bug yet
|
||||||
|
Patch54: nss-3.66-fix-gtest-parsing.patch
|
||||||
|
# no upstream bug yet
|
||||||
|
Patch55: nss-3.67-fix-coverity-issues.patch
|
||||||
|
|
||||||
|
|
||||||
Patch100: nspr-config-pc.patch
|
Patch100: nspr-config-pc.patch
|
||||||
Patch101: nspr-gcc-atomics.patch
|
Patch101: nspr-gcc-atomics.patch
|
||||||
@ -1056,6 +1072,11 @@ update-crypto-policies &> /dev/null || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jun 18 2021 Bob Relyea <rrelyea@redhat.com> - 3.67.0-1
|
||||||
|
- Update NSS to 3.67
|
||||||
|
- Update NSPR to 2.31
|
||||||
|
- pick up rhel coverity patches which have not yet been pushed upstream.
|
||||||
|
|
||||||
* Fri Apr 16 2021 Bob Relyea <rrelyea@redhat.com> - 3.63.0-3
|
* Fri Apr 16 2021 Bob Relyea <rrelyea@redhat.com> - 3.63.0-3
|
||||||
- prevent MD5 from being enabled even with the environment variables
|
- prevent MD5 from being enabled even with the environment variables
|
||||||
and policy. This mirrors the rhel8 semantics.
|
and policy. This mirrors the rhel8 semantics.
|
||||||
|
4
sources
4
sources
@ -3,5 +3,5 @@ SHA512 (blank-cert9.db) = 2f8eab4c0612210ee47db8a3a80c1b58a0b43849551af78c7da403
|
|||||||
SHA512 (blank-key3.db) = 01f7314e9fc8a7c9aa997652624cfcde213d18a6b3bb31840c1a60bbd662e56b5bc3221d13874abb42ce78163b225a6dfce2e1326cf6dd29366ad9c28ba5a71c
|
SHA512 (blank-key3.db) = 01f7314e9fc8a7c9aa997652624cfcde213d18a6b3bb31840c1a60bbd662e56b5bc3221d13874abb42ce78163b225a6dfce2e1326cf6dd29366ad9c28ba5a71c
|
||||||
SHA512 (blank-key4.db) = 8fedae93af7163da23fe9492ea8e785a44c291604fa98e58438448efb69c85d3253fc22b926d5c3209c62e58a86038fd4d78a1c4c068bc00600a7f3e5382ebe7
|
SHA512 (blank-key4.db) = 8fedae93af7163da23fe9492ea8e785a44c291604fa98e58438448efb69c85d3253fc22b926d5c3209c62e58a86038fd4d78a1c4c068bc00600a7f3e5382ebe7
|
||||||
SHA512 (blank-secmod.db) = 06a2dbd861839ef6315093459328b500d3832333a34b30e6fac4a2503af337f014a4d319f0f93322409e719142904ce8bc08252ae9a4f37f30d4c3312e900310
|
SHA512 (blank-secmod.db) = 06a2dbd861839ef6315093459328b500d3832333a34b30e6fac4a2503af337f014a4d319f0f93322409e719142904ce8bc08252ae9a4f37f30d4c3312e900310
|
||||||
SHA512 (nss-3.63.tar.gz) = 2f1f75dce7fd049453cbcf53263a3d9d4d9e62ad2cc2fef4dd0d5645fe14dad4ce47ed64aae507a09214d7fccbe83c142844121f55b44783e5a1bcfe24ea671c
|
SHA512 (nss-3.67.tar.gz) = 1d3fa3fafbf3e54c9c3b54b0b3c291aebb48542380a1b704fa07359d3cefab93f166b31928c9db190ed58118e289e67ce8aa1619e4219d69b2c098484a22bc9d
|
||||||
SHA512 (nspr-4.30.tar.gz) = bbda2cfee5351f15e03fb3ff462dffea17a52739a38b7eb7bce51ebddfb5c8ebe0b565b24b596d0155c35f94cd87e965aaed6abcab37ace9ccc33c9522bb0364
|
SHA512 (nspr-4.31.tar.gz) = 1f37d04721335288dd8a5cf700ead5a56cee73365e619f3da90f6067830b78a050a525950686bcdd14fcf61faffd1141ec46d4180a0dd10375f7e9fef6eac6ed
|
||||||
|
Loading…
Reference in New Issue
Block a user