|
|
@ -45,7 +45,7 @@ static void generate_system_random_bytes(size_t n, void *result);
|
|
|
|
|
|
|
|
|
|
|
|
static void generate_system_random_bytes(size_t n, void *result) {
|
|
|
|
static void generate_system_random_bytes(size_t n, void *result) {
|
|
|
|
HCRYPTPROV prov;
|
|
|
|
HCRYPTPROV prov;
|
|
|
|
#define must_succeed(x) do if (!(x)) assert(0); while (0)
|
|
|
|
#define must_succeed(x) do if (!(x)) abort(); while (0)
|
|
|
|
must_succeed(CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT));
|
|
|
|
must_succeed(CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT));
|
|
|
|
must_succeed(CryptGenRandom(prov, (DWORD)n, result));
|
|
|
|
must_succeed(CryptGenRandom(prov, (DWORD)n, result));
|
|
|
|
must_succeed(CryptReleaseContext(prov, 0));
|
|
|
|
must_succeed(CryptReleaseContext(prov, 0));
|
|
|
|