release 20220302

This commit is contained in:
nickkelsey 2022-03-02 20:33:44 -07:00
commit 7d4e2d34ed

View file

@ -20,34 +20,12 @@
#include "hdhomerun.h" #include "hdhomerun.h"
#if defined(_WINRT)
uint32_t random_get32(void) uint32_t random_get32(void)
{ {
return (uint32_t)getcurrenttime(); uint32_t Result = 0;
} BCryptGenRandom(NULL, (uint8_t *)&Result, 4, BCRYPT_USE_SYSTEM_PREFERRED_RNG);
#else
uint32_t random_get32(void)
{
static DWORD random_get32_context_tls = 0xFFFFFFFF;
if (random_get32_context_tls == 0xFFFFFFFF) {
random_get32_context_tls = TlsAlloc();
}
HCRYPTPROV *phProv = (HCRYPTPROV *)TlsGetValue(random_get32_context_tls);
if (!phProv) {
phProv = (HCRYPTPROV *)calloc(1, sizeof(HCRYPTPROV));
CryptAcquireContext(phProv, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
TlsSetValue(random_get32_context_tls, phProv);
}
uint32_t Result;
if (!CryptGenRandom(*phProv, sizeof(Result), (BYTE *)&Result)) {
return (uint32_t)getcurrenttime();
}
return Result; return Result;
} }
#endif
uint64_t getcurrenttime(void) uint64_t getcurrenttime(void)
{ {