| Index: patches/nss-chacha20-poly1305.patch
|
| diff --git a/patches/nss-chacha20-poly1305.patch b/patches/nss-chacha20-poly1305.patch
|
| index f6c13a8a19a96f551535a49750e31699202626d4..e127a62ab44d6fee295ab1b89b7f0715ccc1f575 100644
|
| --- a/patches/nss-chacha20-poly1305.patch
|
| +++ b/patches/nss-chacha20-poly1305.patch
|
| @@ -1,7 +1,8 @@
|
| -diff -r c3565a90b8c4 lib/freebl/blapi.h
|
| ---- a/lib/freebl/blapi.h Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/freebl/blapi.h Tue Jan 07 12:11:36 2014 -0800
|
| -@@ -986,6 +986,38 @@
|
| +diff --git a/nss/lib/freebl/blapi.h b/nss/lib/freebl/blapi.h
|
| +index 8324714..682be76 100644
|
| +--- a/nss/lib/freebl/blapi.h
|
| ++++ b/nss/lib/freebl/blapi.h
|
| +@@ -986,6 +986,38 @@ Camellia_Decrypt(CamelliaContext *cx, unsigned char *output,
|
| unsigned int *outputLen, unsigned int maxOutputLen,
|
| const unsigned char *input, unsigned int inputLen);
|
|
|
| @@ -40,10 +41,11 @@ diff -r c3565a90b8c4 lib/freebl/blapi.h
|
|
|
| /******************************************/
|
| /*
|
| -diff -r c3565a90b8c4 lib/freebl/blapit.h
|
| ---- a/lib/freebl/blapit.h Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/freebl/blapit.h Tue Jan 07 12:11:36 2014 -0800
|
| -@@ -222,6 +222,7 @@
|
| +diff --git a/nss/lib/freebl/blapit.h b/nss/lib/freebl/blapit.h
|
| +index 8e172d4..5726dc7 100644
|
| +--- a/nss/lib/freebl/blapit.h
|
| ++++ b/nss/lib/freebl/blapit.h
|
| +@@ -222,6 +222,7 @@ struct SHA256ContextStr ;
|
| struct SHA512ContextStr ;
|
| struct AESKeyWrapContextStr ;
|
| struct SEEDContextStr ;
|
| @@ -51,7 +53,7 @@ diff -r c3565a90b8c4 lib/freebl/blapit.h
|
|
|
| typedef struct DESContextStr DESContext;
|
| typedef struct RC2ContextStr RC2Context;
|
| -@@ -240,6 +241,7 @@
|
| +@@ -240,6 +241,7 @@ typedef struct SHA512ContextStr SHA512Context;
|
| typedef struct SHA512ContextStr SHA384Context;
|
| typedef struct AESKeyWrapContextStr AESKeyWrapContext;
|
| typedef struct SEEDContextStr SEEDContext;
|
| @@ -59,9 +61,11 @@ diff -r c3565a90b8c4 lib/freebl/blapit.h
|
|
|
| /***************************************************************************
|
| ** RSA Public and Private Key structures
|
| -diff -r c3565a90b8c4 lib/freebl/chacha20/chacha20.c
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/chacha20/chacha20.c Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/chacha20/chacha20.c b/nss/lib/freebl/chacha20/chacha20.c
|
| +new file mode 100644
|
| +index 0000000..ca0b1ff
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/chacha20/chacha20.c
|
| @@ -0,0 +1,108 @@
|
| +/* This Source Code Form is subject to the terms of the Mozilla Public
|
| + * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| @@ -171,9 +175,11 @@ diff -r c3565a90b8c4 lib/freebl/chacha20/chacha20.c
|
| + }
|
| + }
|
| +}
|
| -diff -r c3565a90b8c4 lib/freebl/chacha20/chacha20.h
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/chacha20/chacha20.h Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/chacha20/chacha20.h b/nss/lib/freebl/chacha20/chacha20.h
|
| +new file mode 100644
|
| +index 0000000..6336ba7
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/chacha20/chacha20.h
|
| @@ -0,0 +1,22 @@
|
| +/*
|
| + * chacha20.h - header file for ChaCha20 implementation.
|
| @@ -197,9 +203,11 @@ diff -r c3565a90b8c4 lib/freebl/chacha20/chacha20.h
|
| + uint64_t counter);
|
| +
|
| +#endif /* FREEBL_CHACHA20_H_ */
|
| -diff -r c3565a90b8c4 lib/freebl/chacha20/chacha20_vec.c
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/chacha20/chacha20_vec.c Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/chacha20/chacha20_vec.c b/nss/lib/freebl/chacha20/chacha20_vec.c
|
| +new file mode 100644
|
| +index 0000000..c3573b3
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/chacha20/chacha20_vec.c
|
| @@ -0,0 +1,281 @@
|
| +/* This Source Code Form is subject to the terms of the Mozilla Public
|
| + * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| @@ -482,9 +490,11 @@ diff -r c3565a90b8c4 lib/freebl/chacha20/chacha20_vec.c
|
| + }
|
| + }
|
| +}
|
| -diff -r c3565a90b8c4 lib/freebl/chacha20poly1305.c
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/chacha20poly1305.c Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/chacha20poly1305.c b/nss/lib/freebl/chacha20poly1305.c
|
| +new file mode 100644
|
| +index 0000000..6fa5c4b
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/chacha20poly1305.c
|
| @@ -0,0 +1,169 @@
|
| +/* This Source Code Form is subject to the terms of the Mozilla Public
|
| + * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| @@ -655,9 +665,11 @@ diff -r c3565a90b8c4 lib/freebl/chacha20poly1305.c
|
| +
|
| + return SECSuccess;
|
| +}
|
| -diff -r c3565a90b8c4 lib/freebl/chacha20poly1305.h
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/chacha20poly1305.h Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/chacha20poly1305.h b/nss/lib/freebl/chacha20poly1305.h
|
| +new file mode 100644
|
| +index 0000000..c77632a
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/chacha20poly1305.h
|
| @@ -0,0 +1,15 @@
|
| +/* This Source Code Form is subject to the terms of the Mozilla Public
|
| + * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| @@ -674,9 +686,11 @@ diff -r c3565a90b8c4 lib/freebl/chacha20poly1305.h
|
| +};
|
| +
|
| +#endif /* _CHACHA20_POLY1305_H_ */
|
| -diff -r c3565a90b8c4 lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c b/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
|
| +new file mode 100644
|
| +index 0000000..38cbf35
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
|
| @@ -0,0 +1,623 @@
|
| +/* This Source Code Form is subject to the terms of the Mozilla Public
|
| + * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| @@ -1301,9 +1315,11 @@ diff -r c3565a90b8c4 lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-sou
|
| + U64TO8_LE(mac + 0, ((h0 ) | (h1 << 44)));
|
| + U64TO8_LE(mac + 8, ((h1 >> 20) | (h2 << 24)));
|
| +}
|
| -diff -r c3565a90b8c4 lib/freebl/poly1305/poly1305.c
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/poly1305/poly1305.c Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/poly1305/poly1305.c b/nss/lib/freebl/poly1305/poly1305.c
|
| +new file mode 100644
|
| +index 0000000..d86048a
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/poly1305/poly1305.c
|
| @@ -0,0 +1,254 @@
|
| +/* This Source Code Form is subject to the terms of the Mozilla Public
|
| + * License, v. 2.0. If a copy of the MPL was not distributed with this
|
| @@ -1559,9 +1575,11 @@ diff -r c3565a90b8c4 lib/freebl/poly1305/poly1305.c
|
| + U32TO8_LE(&mac[ 8], (uint32_t)f2); f3 += (f2 >> 32);
|
| + U32TO8_LE(&mac[12], (uint32_t)f3);
|
| +}
|
| -diff -r c3565a90b8c4 lib/freebl/poly1305/poly1305.h
|
| ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
| -+++ b/lib/freebl/poly1305/poly1305.h Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/freebl/poly1305/poly1305.h b/nss/lib/freebl/poly1305/poly1305.h
|
| +new file mode 100644
|
| +index 0000000..4beb172
|
| +--- /dev/null
|
| ++++ b/nss/lib/freebl/poly1305/poly1305.h
|
| @@ -0,0 +1,31 @@
|
| +/*
|
| + * poly1305.h - header file for Poly1305 implementation.
|
| @@ -1594,10 +1612,11 @@ diff -r c3565a90b8c4 lib/freebl/poly1305/poly1305.h
|
| + unsigned char mac[16]);
|
| +
|
| +#endif /* FREEBL_POLY1305_H_ */
|
| -diff -r c3565a90b8c4 lib/pk11wrap/pk11mech.c
|
| ---- a/lib/pk11wrap/pk11mech.c Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/pk11wrap/pk11mech.c Tue Jan 07 12:11:36 2014 -0800
|
| -@@ -152,6 +152,8 @@
|
| +diff --git a/nss/lib/pk11wrap/pk11mech.c b/nss/lib/pk11wrap/pk11mech.c
|
| +index b7a7296..edc7a9b 100644
|
| +--- a/nss/lib/pk11wrap/pk11mech.c
|
| ++++ b/nss/lib/pk11wrap/pk11mech.c
|
| +@@ -152,6 +152,8 @@ PK11_GetKeyMechanism(CK_KEY_TYPE type)
|
| return CKM_SEED_CBC;
|
| case CKK_CAMELLIA:
|
| return CKM_CAMELLIA_CBC;
|
| @@ -1606,7 +1625,7 @@ diff -r c3565a90b8c4 lib/pk11wrap/pk11mech.c
|
| case CKK_AES:
|
| return CKM_AES_CBC;
|
| case CKK_DES:
|
| -@@ -219,6 +221,8 @@
|
| +@@ -219,6 +221,8 @@ PK11_GetKeyType(CK_MECHANISM_TYPE type,unsigned long len)
|
| case CKM_CAMELLIA_CBC_PAD:
|
| case CKM_CAMELLIA_KEY_GEN:
|
| return CKK_CAMELLIA;
|
| @@ -1615,7 +1634,7 @@ diff -r c3565a90b8c4 lib/pk11wrap/pk11mech.c
|
| case CKM_AES_ECB:
|
| case CKM_AES_CBC:
|
| case CKM_AES_CCM:
|
| -@@ -429,6 +433,8 @@
|
| +@@ -429,6 +433,8 @@ PK11_GetKeyGenWithSize(CK_MECHANISM_TYPE type, int size)
|
| case CKM_CAMELLIA_CBC_PAD:
|
| case CKM_CAMELLIA_KEY_GEN:
|
| return CKM_CAMELLIA_KEY_GEN;
|
| @@ -1624,10 +1643,11 @@ diff -r c3565a90b8c4 lib/pk11wrap/pk11mech.c
|
| case CKM_AES_ECB:
|
| case CKM_AES_CBC:
|
| case CKM_AES_CCM:
|
| -diff -r c3565a90b8c4 lib/softoken/pkcs11.c
|
| ---- a/lib/softoken/pkcs11.c Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/softoken/pkcs11.c Tue Jan 07 12:11:36 2014 -0800
|
| -@@ -368,6 +368,9 @@
|
| +diff --git a/nss/lib/softoken/pkcs11.c b/nss/lib/softoken/pkcs11.c
|
| +index bd7c4bd..716922f 100644
|
| +--- a/nss/lib/softoken/pkcs11.c
|
| ++++ b/nss/lib/softoken/pkcs11.c
|
| +@@ -370,6 +370,9 @@ static const struct mechanismList mechanisms[] = {
|
| {CKM_SEED_MAC, {16, 16, CKF_SN_VR}, PR_TRUE},
|
| {CKM_SEED_MAC_GENERAL, {16, 16, CKF_SN_VR}, PR_TRUE},
|
| {CKM_SEED_CBC_PAD, {16, 16, CKF_EN_DE_WR_UN}, PR_TRUE},
|
| @@ -1637,10 +1657,11 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11.c
|
| /* ------------------------- Hashing Operations ----------------------- */
|
| {CKM_MD2, {0, 0, CKF_DIGEST}, PR_FALSE},
|
| {CKM_MD2_HMAC, {1, 128, CKF_SN_VR}, PR_TRUE},
|
| -diff -r c3565a90b8c4 lib/softoken/pkcs11c.c
|
| ---- a/lib/softoken/pkcs11c.c Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/softoken/pkcs11c.c Tue Jan 07 12:11:36 2014 -0800
|
| -@@ -632,6 +632,97 @@
|
| +diff --git a/nss/lib/softoken/pkcs11c.c b/nss/lib/softoken/pkcs11c.c
|
| +index fc050f3..955d4c9 100644
|
| +--- a/nss/lib/softoken/pkcs11c.c
|
| ++++ b/nss/lib/softoken/pkcs11c.c
|
| +@@ -663,6 +663,97 @@ sftk_RSADecryptOAEP(SFTKOAEPDecryptInfo *info, unsigned char *output,
|
| return rv;
|
| }
|
|
|
| @@ -1738,7 +1759,7 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11c.c
|
| /** NSC_CryptInit initializes an encryption/Decryption operation.
|
| *
|
| * Always called by NSC_EncryptInit, NSC_DecryptInit, NSC_WrapKey,NSC_UnwrapKey.
|
| -@@ -1027,6 +1118,35 @@
|
| +@@ -1056,6 +1147,35 @@ finish_des:
|
| context->destroy = (SFTKDestroy) AES_DestroyContext;
|
| break;
|
|
|
| @@ -1774,7 +1795,7 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11c.c
|
| case CKM_NETSCAPE_AES_KEY_WRAP_PAD:
|
| context->doPad = PR_TRUE;
|
| /* fall thru */
|
| -@@ -3601,6 +3721,10 @@
|
| +@@ -3609,6 +3729,10 @@ nsc_SetupBulkKeyGen(CK_MECHANISM_TYPE mechanism, CK_KEY_TYPE *key_type,
|
| *key_type = CKK_AES;
|
| if (*key_length == 0) crv = CKR_TEMPLATE_INCOMPLETE;
|
| break;
|
| @@ -1785,7 +1806,7 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11c.c
|
| default:
|
| PORT_Assert(0);
|
| crv = CKR_MECHANISM_INVALID;
|
| -@@ -3846,6 +3970,7 @@
|
| +@@ -3854,6 +3978,7 @@ CK_RV NSC_GenerateKey(CK_SESSION_HANDLE hSession,
|
| case CKM_SEED_KEY_GEN:
|
| case CKM_CAMELLIA_KEY_GEN:
|
| case CKM_AES_KEY_GEN:
|
| @@ -1793,9 +1814,10 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11c.c
|
| #if NSS_SOFTOKEN_DOES_RC5
|
| case CKM_RC5_KEY_GEN:
|
| #endif
|
| -diff -r c3565a90b8c4 lib/softoken/pkcs11i.h
|
| ---- a/lib/softoken/pkcs11i.h Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/softoken/pkcs11i.h Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/softoken/pkcs11i.h b/nss/lib/softoken/pkcs11i.h
|
| +index 9a00273..175bb78 100644
|
| +--- a/nss/lib/softoken/pkcs11i.h
|
| ++++ b/nss/lib/softoken/pkcs11i.h
|
| @@ -14,6 +14,7 @@
|
| #include "pkcs11t.h"
|
|
|
| @@ -1804,7 +1826,7 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11i.h
|
| #include "hasht.h"
|
|
|
| /*
|
| -@@ -104,6 +105,7 @@
|
| +@@ -104,6 +105,7 @@ typedef struct SFTKHashSignInfoStr SFTKHashSignInfo;
|
| typedef struct SFTKOAEPEncryptInfoStr SFTKOAEPEncryptInfo;
|
| typedef struct SFTKOAEPDecryptInfoStr SFTKOAEPDecryptInfo;
|
| typedef struct SFTKSSLMACInfoStr SFTKSSLMACInfo;
|
| @@ -1812,7 +1834,7 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11i.h
|
| typedef struct SFTKItemTemplateStr SFTKItemTemplate;
|
|
|
| /* define function pointer typdefs for pointer tables */
|
| -@@ -399,6 +401,16 @@
|
| +@@ -399,6 +401,16 @@ struct SFTKSSLMACInfoStr {
|
| unsigned int keySize;
|
| };
|
|
|
| @@ -1829,9 +1851,10 @@ diff -r c3565a90b8c4 lib/softoken/pkcs11i.h
|
| /*
|
| * Template based on SECItems, suitable for passing as arrays
|
| */
|
| -diff -r c3565a90b8c4 lib/util/pkcs11n.h
|
| ---- a/lib/util/pkcs11n.h Fri Jan 03 20:59:10 2014 +0100
|
| -+++ b/lib/util/pkcs11n.h Tue Jan 07 12:11:36 2014 -0800
|
| +diff --git a/nss/lib/util/pkcs11n.h b/nss/lib/util/pkcs11n.h
|
| +index a1a0ebb..d48cef6 100644
|
| +--- a/nss/lib/util/pkcs11n.h
|
| ++++ b/nss/lib/util/pkcs11n.h
|
| @@ -51,6 +51,8 @@
|
| #define CKK_NSS_JPAKE_ROUND1 (CKK_NSS + 2)
|
| #define CKK_NSS_JPAKE_ROUND2 (CKK_NSS + 3)
|
| @@ -1851,7 +1874,7 @@ diff -r c3565a90b8c4 lib/util/pkcs11n.h
|
| /*
|
| * HISTORICAL:
|
| * Do not attempt to use these. They are only used by NETSCAPE's internal
|
| -@@ -281,6 +286,14 @@
|
| +@@ -281,6 +286,14 @@ typedef struct CK_NSS_MAC_CONSTANT_TIME_PARAMS {
|
| CK_ULONG ulHeaderLen; /* in */
|
| } CK_NSS_MAC_CONSTANT_TIME_PARAMS;
|
|
|
|
|