Update urandom.nim for 2.0.0

It's backwards compatible with Nim < 2.0.0
This commit is contained in:
Joey Yakimowich-Payne 2023-12-13 19:57:04 -07:00 committed by GitHub
commit 740deeef9d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -12,16 +12,22 @@ when defined(windows):
{.push, stdcall, dynlib: "Advapi32.dll".}
when useWinUnicode:
when (NimMajor, NimMinor, NimPatch) < (2, 0, 0):
when useWinUnicode:
proc CryptAcquireContext(
phProv: ptr HCRYPTPROV, pszContainer: WideCString,
pszProvider: WideCString, dwProvType: DWORD, dwFlags: DWORD
): WINBOOL {.importc: "CryptAcquireContextW".}
else:
proc CryptAcquireContext(
phProv: ptr HCRYPTPROV, pszContainer: cstring, pszProvider: cstring,
dwProvType: DWORD, dwFlags: DWORD
): WINBOOL {.importc: "CryptAcquireContextA".}
else:
proc CryptAcquireContext(
phProv: ptr HCRYPTPROV, pszContainer: WideCString,
pszProvider: WideCString, dwProvType: DWORD, dwFlags: DWORD
): WINBOOL {.importc: "CryptAcquireContextW".}
else:
proc CryptAcquireContext(
phProv: ptr HCRYPTPROV, pszContainer: cstring, pszProvider: cstring,
dwProvType: DWORD, dwFlags: DWORD
): WINBOOL {.importc: "CryptAcquireContextA".}
proc CryptGenRandom(
hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: pointer