Index: net/third_party/nss/patches/cbc.patch |
=================================================================== |
--- net/third_party/nss/patches/cbc.patch (revision 242942) |
+++ net/third_party/nss/patches/cbc.patch (working copy) |
@@ -1,81 +0,0 @@ |
-diff -pu a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c |
---- a/nss/lib/ssl/ssl3con.c 2013-07-31 14:10:35.113325316 -0700 |
-+++ b/nss/lib/ssl/ssl3con.c 2013-07-31 14:12:00.254575103 -0700 |
-@@ -2157,6 +2157,20 @@ ssl3_ComputeRecordMAC( |
- return rv; |
- } |
- |
-+/* This is a bodge to allow this code to be compiled against older NSS headers |
-+ * that don't contain the CBC constant-time changes. */ |
-+#ifndef CKM_NSS_HMAC_CONSTANT_TIME |
-+#define CKM_NSS_HMAC_CONSTANT_TIME (CKM_NSS + 19) |
-+#define CKM_NSS_SSL3_MAC_CONSTANT_TIME (CKM_NSS + 20) |
-+ |
-+typedef struct CK_NSS_MAC_CONSTANT_TIME_PARAMS { |
-+ CK_MECHANISM_TYPE macAlg; /* in */ |
-+ CK_ULONG ulBodyTotalLen; /* in */ |
-+ CK_BYTE * pHeader; /* in */ |
-+ CK_ULONG ulHeaderLen; /* in */ |
-+} CK_NSS_MAC_CONSTANT_TIME_PARAMS; |
-+#endif |
-+ |
- /* Called from: ssl3_HandleRecord() |
- * Caller must already hold the SpecReadLock. (wish we could assert that!) |
- * |
-@@ -2179,7 +2193,8 @@ ssl3_ComputeRecordMACConstantTime( |
- { |
- CK_MECHANISM_TYPE macType; |
- CK_NSS_MAC_CONSTANT_TIME_PARAMS params; |
-- SECItem param, inputItem, outputItem; |
-+ PK11Context * mac_context; |
-+ SECItem param; |
- SECStatus rv; |
- unsigned char header[13]; |
- PK11SymKey * key; |
-@@ -2240,34 +2255,27 @@ ssl3_ComputeRecordMACConstantTime( |
- param.len = sizeof(params); |
- param.type = 0; |
- |
-- inputItem.data = (unsigned char *) input; |
-- inputItem.len = inputLen; |
-- inputItem.type = 0; |
-- |
-- outputItem.data = outbuf; |
-- outputItem.len = *outLen; |
-- outputItem.type = 0; |
-- |
- key = spec->server.write_mac_key; |
- if (!useServerMacKey) { |
- key = spec->client.write_mac_key; |
- } |
-+ mac_context = PK11_CreateContextBySymKey(macType, CKA_SIGN, key, ¶m); |
-+ if (mac_context == NULL) { |
-+ /* Older versions of NSS may not support constant-time MAC. */ |
-+ goto fallback; |
-+ } |
- |
-- rv = PK11_SignWithSymKey(key, macType, ¶m, &outputItem, &inputItem); |
-- if (rv != SECSuccess) { |
-- if (PORT_GetError() == SEC_ERROR_INVALID_ALGORITHM) { |
-- goto fallback; |
-- } |
-+ rv = PK11_DigestBegin(mac_context); |
-+ rv |= PK11_DigestOp(mac_context, input, inputLen); |
-+ rv |= PK11_DigestFinal(mac_context, outbuf, outLen, spec->mac_size); |
-+ PK11_DestroyContext(mac_context, PR_TRUE); |
- |
-- *outLen = 0; |
-+ PORT_Assert(rv != SECSuccess || *outLen == (unsigned)spec->mac_size); |
-+ |
-+ if (rv != SECSuccess) { |
- rv = SECFailure; |
- ssl_MapLowLevelError(SSL_ERROR_MAC_COMPUTATION_FAILURE); |
-- return rv; |
- } |
-- |
-- PORT_Assert(outputItem.len == (unsigned)spec->mac_size); |
-- *outLen = outputItem.len; |
-- |
- return rv; |
- |
- fallback: |