mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-26 10:27:32 +09:00
Update NSS to 3.48 while keeping vc2013 hackfix and no-sslkeylogfile intact.
This commit is contained in:
parent
0b9855b841
commit
171849c8e5
351 changed files with 115185 additions and 57946 deletions
|
|
@ -20,9 +20,19 @@
|
|||
#include "gcm.h"
|
||||
#include "mpi.h"
|
||||
|
||||
#ifdef USE_HW_AES
|
||||
#include "intel-aes.h"
|
||||
#if (!defined(IS_LITTLE_ENDIAN) && !defined(NSS_X86_OR_X64)) || \
|
||||
(defined(__arm__) && !defined(__ARM_NEON) && !defined(__ARM_NEON__))
|
||||
// not test yet on big endian platform of arm
|
||||
#undef USE_HW_AES
|
||||
#endif
|
||||
|
||||
#ifdef USE_HW_AES
|
||||
#ifdef NSS_X86_OR_X64
|
||||
#include "intel-aes.h"
|
||||
#else
|
||||
#include "aes-armv8.h"
|
||||
#endif
|
||||
#endif /* USE_HW_AES */
|
||||
#ifdef INTEL_GCM
|
||||
#include "intel-gcm.h"
|
||||
#endif /* INTEL_GCM */
|
||||
|
|
@ -321,7 +331,7 @@ rijndael_key_expansion7(AESContext *cx, const unsigned char *key, unsigned int N
|
|||
PRUint32 *W;
|
||||
PRUint32 *pW;
|
||||
PRUint32 tmp;
|
||||
W = cx->expandedKey;
|
||||
W = cx->k.expandedKey;
|
||||
/* 1. the first Nk words contain the cipher key */
|
||||
memcpy(W, key, Nk * 4);
|
||||
i = Nk;
|
||||
|
|
@ -353,7 +363,7 @@ rijndael_key_expansion(AESContext *cx, const unsigned char *key, unsigned int Nk
|
|||
rijndael_key_expansion7(cx, key, Nk);
|
||||
return;
|
||||
}
|
||||
W = cx->expandedKey;
|
||||
W = cx->k.expandedKey;
|
||||
/* The first Nk words contain the input cipher key */
|
||||
memcpy(W, key, Nk * 4);
|
||||
i = Nk;
|
||||
|
|
@ -430,7 +440,7 @@ rijndael_invkey_expansion(AESContext *cx, const unsigned char *key, unsigned int
|
|||
/* ... but has the additional step of InvMixColumn,
|
||||
* excepting the first and last round keys.
|
||||
*/
|
||||
roundkeyw = cx->expandedKey + cx->Nb;
|
||||
roundkeyw = cx->k.expandedKey + cx->Nb;
|
||||
for (r = 1; r < cx->Nr; ++r) {
|
||||
/* each key word, roundkeyw, represents a column in the key
|
||||
* matrix. Each column is multiplied by the InvMixColumn matrix.
|
||||
|
|
@ -528,7 +538,7 @@ rijndael_encryptBlock128(AESContext *cx,
|
|||
pOut = (unsigned char *)output;
|
||||
}
|
||||
#endif
|
||||
roundkeyw = cx->expandedKey;
|
||||
roundkeyw = cx->k.expandedKey;
|
||||
/* Step 1: Add Round Key 0 to initial state */
|
||||
COLUMN_0(state) = *((PRUint32 *)(pIn)) ^ *roundkeyw++;
|
||||
COLUMN_1(state) = *((PRUint32 *)(pIn + 4)) ^ *roundkeyw++;
|
||||
|
|
@ -623,7 +633,7 @@ rijndael_decryptBlock128(AESContext *cx,
|
|||
pOut = (unsigned char *)output;
|
||||
}
|
||||
#endif
|
||||
roundkeyw = cx->expandedKey + cx->Nb * cx->Nr + 3;
|
||||
roundkeyw = cx->k.expandedKey + cx->Nb * cx->Nr + 3;
|
||||
/* reverse the final key addition */
|
||||
COLUMN_3(state) = *((PRUint32 *)(pIn + 12)) ^ *roundkeyw--;
|
||||
COLUMN_2(state) = *((PRUint32 *)(pIn + 8)) ^ *roundkeyw--;
|
||||
|
|
@ -847,7 +857,11 @@ aes_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
|||
PORT_SetError(SEC_ERROR_INVALID_ARGS);
|
||||
return SECFailure;
|
||||
}
|
||||
use_hw_aes = aesni_support() && (keysize % 8) == 0;
|
||||
#if defined(NSS_X86_OR_X64) || defined(USE_HW_AES)
|
||||
use_hw_aes = (aesni_support() || arm_aes_support()) && (keysize % 8) == 0;
|
||||
#else
|
||||
use_hw_aes = PR_FALSE;
|
||||
#endif
|
||||
/* Nb = (block size in bits) / 32 */
|
||||
cx->Nb = AES_BLOCK_SIZE / 4;
|
||||
/* Nk = (key size in bits) / 32 */
|
||||
|
|
@ -860,7 +874,7 @@ aes_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
|||
#ifdef USE_HW_AES
|
||||
if (use_hw_aes) {
|
||||
cx->worker = (freeblCipherFunc)
|
||||
intel_aes_cbc_worker(encrypt, keysize);
|
||||
native_aes_cbc_worker(encrypt, keysize);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
|
@ -872,7 +886,7 @@ aes_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
|||
#ifdef USE_HW_AES
|
||||
if (use_hw_aes) {
|
||||
cx->worker = (freeblCipherFunc)
|
||||
intel_aes_ecb_worker(encrypt, keysize);
|
||||
native_aes_ecb_worker(encrypt, keysize);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
|
@ -888,7 +902,7 @@ aes_InitContext(AESContext *cx, const unsigned char *key, unsigned int keysize,
|
|||
}
|
||||
#ifdef USE_HW_AES
|
||||
if (use_hw_aes) {
|
||||
intel_aes_init(encrypt, keysize);
|
||||
native_aes_init(encrypt, keysize);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue