mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-21 15:57:31 +09:00
Update NSS to 3.35-RTM
This commit is contained in:
parent
fe49ad404e
commit
66dd670b60
388 changed files with 39075 additions and 20752 deletions
|
|
@ -276,7 +276,10 @@ RSAPrivateKey *
|
|||
RSA_NewKey(int keySizeInBits, SECItem *publicExponent)
|
||||
{
|
||||
unsigned int primeLen;
|
||||
mp_int p, q, e, d;
|
||||
mp_int p = { 0, 0, 0, NULL };
|
||||
mp_int q = { 0, 0, 0, NULL };
|
||||
mp_int e = { 0, 0, 0, NULL };
|
||||
mp_int d = { 0, 0, 0, NULL };
|
||||
int kiter;
|
||||
int max_attempts;
|
||||
mp_err err = MP_OKAY;
|
||||
|
|
@ -290,34 +293,46 @@ RSA_NewKey(int keySizeInBits, SECItem *publicExponent)
|
|||
PORT_SetError(SEC_ERROR_INVALID_ARGS);
|
||||
return NULL;
|
||||
}
|
||||
/* 1. Allocate arena & key */
|
||||
/* 1. Set the public exponent and check if it's uneven and greater than 2.*/
|
||||
MP_DIGITS(&e) = 0;
|
||||
CHECK_MPI_OK(mp_init(&e));
|
||||
SECITEM_TO_MPINT(*publicExponent, &e);
|
||||
if (mp_iseven(&e) || !(mp_cmp_d(&e, 2) > 0)) {
|
||||
PORT_SetError(SEC_ERROR_INVALID_ARGS);
|
||||
goto cleanup;
|
||||
}
|
||||
#ifndef NSS_FIPS_DISABLED
|
||||
/* Check that the exponent is not smaller than 65537 */
|
||||
if (mp_cmp_d(&e, 0x10001) < 0) {
|
||||
PORT_SetError(SEC_ERROR_INVALID_ARGS);
|
||||
goto cleanup;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 2. Allocate arena & key */
|
||||
arena = PORT_NewArena(NSS_FREEBL_DEFAULT_CHUNKSIZE);
|
||||
if (!arena) {
|
||||
PORT_SetError(SEC_ERROR_NO_MEMORY);
|
||||
return NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
key = PORT_ArenaZNew(arena, RSAPrivateKey);
|
||||
if (!key) {
|
||||
PORT_SetError(SEC_ERROR_NO_MEMORY);
|
||||
PORT_FreeArena(arena, PR_TRUE);
|
||||
return NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
key->arena = arena;
|
||||
/* length of primes p and q (in bytes) */
|
||||
primeLen = keySizeInBits / (2 * PR_BITS_PER_BYTE);
|
||||
MP_DIGITS(&p) = 0;
|
||||
MP_DIGITS(&q) = 0;
|
||||
MP_DIGITS(&e) = 0;
|
||||
MP_DIGITS(&d) = 0;
|
||||
CHECK_MPI_OK(mp_init(&p));
|
||||
CHECK_MPI_OK(mp_init(&q));
|
||||
CHECK_MPI_OK(mp_init(&e));
|
||||
CHECK_MPI_OK(mp_init(&d));
|
||||
/* 2. Set the version number (PKCS1 v1.5 says it should be zero) */
|
||||
/* 3. Set the version number (PKCS1 v1.5 says it should be zero) */
|
||||
SECITEM_AllocItem(arena, &key->version, 1);
|
||||
key->version.data[0] = 0;
|
||||
/* 3. Set the public exponent */
|
||||
SECITEM_TO_MPINT(*publicExponent, &e);
|
||||
|
||||
kiter = 0;
|
||||
max_attempts = 5 * (keySizeInBits / 2); /* FIPS 186-4 B.3.3 steps 4.7 and 5.8 */
|
||||
do {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue