mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
4453811aee
--HG-- rename : security/nss/lib/freebl/sechash.h => security/nss/lib/cryptohi/sechash.h rename : security/nss/lib/softoken/secmodt.h => security/nss/lib/pk11wrap/secmodt.h rename : security/nss/lib/freebl/hasht.h => security/nss/lib/util/hasht.h extra : rebase_source : 7da6cd73ca2605a261085ad7fb3b90315e38ad6b
47 lines
998 B
C
47 lines
998 B
C
/* 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
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifdef FREEBL_NO_DEPEND
|
|
#include "stubs.h"
|
|
#endif
|
|
|
|
#include "seccomon.h"
|
|
|
|
static size_t rng_systemFromNoise(unsigned char *dest, size_t maxLen);
|
|
|
|
#if defined(XP_UNIX) || defined(XP_BEOS)
|
|
#include "unix_rand.c"
|
|
#endif
|
|
#ifdef XP_WIN
|
|
#include "win_rand.c"
|
|
#endif
|
|
#ifdef XP_OS2
|
|
#include "os2_rand.c"
|
|
#endif
|
|
|
|
/*
|
|
* Normal RNG_SystemRNG() isn't available, use the system noise to collect
|
|
* the required amount of entropy.
|
|
*/
|
|
static size_t
|
|
rng_systemFromNoise(unsigned char *dest, size_t maxLen)
|
|
{
|
|
size_t retBytes = maxLen;
|
|
|
|
while (maxLen) {
|
|
size_t nbytes = RNG_GetNoise(dest, maxLen);
|
|
|
|
PORT_Assert(nbytes != 0);
|
|
|
|
dest += nbytes;
|
|
maxLen -= nbytes;
|
|
|
|
/* some hw op to try to introduce more entropy into the next
|
|
* RNG_GetNoise call */
|
|
rng_systemJitter();
|
|
}
|
|
return retBytes;
|
|
}
|
|
|