Index: patches/nss-aes-gcm.patch |
=================================================================== |
--- patches/nss-aes-gcm.patch (revision 195639) |
+++ patches/nss-aes-gcm.patch (working copy) |
@@ -1,86 +0,0 @@ |
-Index: mozilla/security/nss/lib/freebl/gcm.c |
-=================================================================== |
---- mozilla/security/nss/lib/freebl/gcm.c (revision 190722) |
-+++ mozilla/security/nss/lib/freebl/gcm.c (working copy) |
-@@ -230,7 +230,7 @@ |
- PORT_SetError(SEC_ERROR_LIBRARY_FAILURE); |
- return SECFailure; |
- } |
-- gcm_reverse(T, X, blocksize); |
-+ gcm_reverse(T, tmp_buf, blocksize); |
- return SECSuccess; |
- } |
- |
-@@ -453,7 +453,9 @@ |
- * we can hash it */ |
- if (ghash->bufLen) { |
- unsigned int needed = PR_MIN(len, blocksize - ghash->bufLen); |
-- PORT_Memcpy(ghash->buffer+ghash->bufLen, buf, needed); |
-+ if (needed != 0) { |
-+ PORT_Memcpy(ghash->buffer+ghash->bufLen, buf, needed); |
-+ } |
- buf += needed; |
- len -= needed; |
- ghash->bufLen += needed; |
-@@ -575,11 +577,11 @@ |
- if (rv != SECSuccess) { |
- return SECFailure; |
- } |
-- rv = gcmHash_Sync(ghash, blocksize); |
-- if (rv != SECSuccess) { |
-- return SECFailure; |
-- } |
- } |
-+ rv = gcmHash_Sync(ghash, blocksize); |
-+ if (rv != SECSuccess) { |
-+ return SECFailure; |
-+ } |
- return SECSuccess; |
- } |
- |
-@@ -814,7 +816,7 @@ |
- |
- /* get the authentication block */ |
- if (inlen < tagBytes) { |
-- PORT_SetError(SEC_ERROR_INVALID_ARGS); |
-+ PORT_SetError(SEC_ERROR_INPUT_LEN); |
- return SECFailure; |
- } |
- |
-Index: mozilla/security/nss/lib/freebl/rijndael.c |
-=================================================================== |
---- mozilla/security/nss/lib/freebl/rijndael.c (revision 190722) |
-+++ mozilla/security/nss/lib/freebl/rijndael.c (working copy) |
-@@ -1221,7 +1221,7 @@ |
- { |
- int blocksize; |
- /* Check args */ |
-- if (cx == NULL || output == NULL || input == NULL) { |
-+ if (cx == NULL || output == NULL || (input == NULL && inputLen != 0)) { |
- PORT_SetError(SEC_ERROR_INVALID_ARGS); |
- return SECFailure; |
- } |
-@@ -1252,7 +1252,7 @@ |
- { |
- int blocksize; |
- /* Check args */ |
-- if (cx == NULL || output == NULL || input == NULL) { |
-+ if (cx == NULL || output == NULL || (input == NULL && inputLen != 0)) { |
- PORT_SetError(SEC_ERROR_INVALID_ARGS); |
- return SECFailure; |
- } |
-Index: mozilla/security/nss/lib/pk11wrap/pk11mech.c |
-=================================================================== |
---- mozilla/security/nss/lib/pk11wrap/pk11mech.c (revision 190722) |
-+++ mozilla/security/nss/lib/pk11wrap/pk11mech.c (working copy) |
-@@ -221,6 +221,10 @@ |
- return CKK_CAMELLIA; |
- case CKM_AES_ECB: |
- case CKM_AES_CBC: |
-+ case CKM_AES_CCM: |
-+ case CKM_AES_CTR: |
-+ case CKM_AES_CTS: |
-+ case CKM_AES_GCM: |
- case CKM_AES_MAC: |
- case CKM_AES_MAC_GENERAL: |
- case CKM_AES_CBC_PAD: |