mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-24 09:27:31 +09:00
Update NSS to 3.32.1-RTM
This commit is contained in:
parent
f29876f120
commit
c91ef9012b
512 changed files with 83203 additions and 16839 deletions
|
|
@ -9,10 +9,32 @@
|
|||
#include "seccomon.h"
|
||||
#include "secerr.h"
|
||||
|
||||
#define GLOBAL_BYTES_SIZE 100
|
||||
static PRUint8 globalBytes[GLOBAL_BYTES_SIZE];
|
||||
static unsigned long globalNumCalls = 0;
|
||||
static PZLock *rng_lock = NULL;
|
||||
|
||||
SECStatus
|
||||
prng_ResetForFuzzing(PZLock *rng_lock)
|
||||
RNG_RNGInit(void)
|
||||
{
|
||||
rng_lock = PZ_NewLock(nssILockOther);
|
||||
if (!rng_lock) {
|
||||
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
|
||||
return SECFailure;
|
||||
}
|
||||
/* --- LOCKED --- */
|
||||
PZ_Lock(rng_lock);
|
||||
memset(globalBytes, 0, GLOBAL_BYTES_SIZE);
|
||||
PZ_Unlock(rng_lock);
|
||||
/* --- UNLOCKED --- */
|
||||
|
||||
return SECSuccess;
|
||||
}
|
||||
|
||||
/* Take min(size, GLOBAL_BYTES_SIZE) bytes from data and use as seed and reset
|
||||
* the rng state. */
|
||||
SECStatus
|
||||
RNG_RandomUpdate(const void *data, size_t bytes)
|
||||
{
|
||||
/* Check for a valid RNG lock. */
|
||||
PORT_Assert(rng_lock != NULL);
|
||||
|
|
@ -23,7 +45,11 @@ prng_ResetForFuzzing(PZLock *rng_lock)
|
|||
|
||||
/* --- LOCKED --- */
|
||||
PZ_Lock(rng_lock);
|
||||
memset(globalBytes, 0, GLOBAL_BYTES_SIZE);
|
||||
globalNumCalls = 0;
|
||||
if (data) {
|
||||
memcpy(globalBytes, (PRUint8 *)data, PR_MIN(bytes, GLOBAL_BYTES_SIZE));
|
||||
}
|
||||
PZ_Unlock(rng_lock);
|
||||
/* --- UNLOCKED --- */
|
||||
|
||||
|
|
@ -31,9 +57,9 @@ prng_ResetForFuzzing(PZLock *rng_lock)
|
|||
}
|
||||
|
||||
SECStatus
|
||||
prng_GenerateDeterministicRandomBytes(PZLock *rng_lock, void *dest, size_t len)
|
||||
RNG_GenerateGlobalRandomBytes(void *dest, size_t len)
|
||||
{
|
||||
static const uint8_t key[32];
|
||||
static const uint8_t key[32] = { 0 };
|
||||
uint8_t nonce[12] = { 0 };
|
||||
|
||||
/* Check for a valid RNG lock. */
|
||||
|
|
@ -58,10 +84,60 @@ prng_GenerateDeterministicRandomBytes(PZLock *rng_lock, void *dest, size_t len)
|
|||
}
|
||||
|
||||
memset(dest, 0, len);
|
||||
memcpy(dest, globalBytes, PR_MIN(len, GLOBAL_BYTES_SIZE));
|
||||
ChaCha20XOR(dest, dest, len, key, nonce, 0);
|
||||
ChaCha20Poly1305_DestroyContext(cx, PR_TRUE);
|
||||
|
||||
PZ_Unlock(rng_lock);
|
||||
/* --- UNLOCKED --- */
|
||||
|
||||
return SECSuccess;
|
||||
}
|
||||
|
||||
void
|
||||
RNG_RNGShutdown(void)
|
||||
{
|
||||
PZ_DestroyLock(rng_lock);
|
||||
rng_lock = NULL;
|
||||
}
|
||||
|
||||
/* Test functions are not implemented! */
|
||||
SECStatus
|
||||
PRNGTEST_Instantiate(const PRUint8 *entropy, unsigned int entropy_len,
|
||||
const PRUint8 *nonce, unsigned int nonce_len,
|
||||
const PRUint8 *personal_string, unsigned int ps_len)
|
||||
{
|
||||
return SECFailure;
|
||||
}
|
||||
|
||||
SECStatus
|
||||
PRNGTEST_Reseed(const PRUint8 *entropy, unsigned int entropy_len,
|
||||
const PRUint8 *additional, unsigned int additional_len)
|
||||
{
|
||||
return SECFailure;
|
||||
}
|
||||
|
||||
SECStatus
|
||||
PRNGTEST_Generate(PRUint8 *bytes, unsigned int bytes_len,
|
||||
const PRUint8 *additional, unsigned int additional_len)
|
||||
{
|
||||
return SECFailure;
|
||||
}
|
||||
|
||||
SECStatus
|
||||
PRNGTEST_Uninstantiate()
|
||||
{
|
||||
return SECFailure;
|
||||
}
|
||||
|
||||
SECStatus
|
||||
PRNGTEST_RunHealthTests()
|
||||
{
|
||||
return SECFailure;
|
||||
}
|
||||
|
||||
SECStatus
|
||||
PRNGTEST_Instantiate_Kat()
|
||||
{
|
||||
return SECFailure;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue