diff options
author | Nobuyoshi Nakada <[email protected]> | 2021-09-24 17:06:10 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2021-10-02 21:22:33 +0900 |
commit | e0ef4899f3ef2561ae32275c2c3d11914e7343c7 () | |
tree | d8f87e7eccb08b9ebe4a42b0082d1c1cc1a0dcbd | |
parent | b8327fb8b10615ddb3f5e1978d6d83be465503a9 (diff) |
[Win32] Prefer Cryptography Next Generation API
[BCryptGenRandom] is available since Windows Vista / Windows Server 2008. Regarding [CryptGenRandom]: > This API is deprecated. New and existing software should start > using Cryptography Next Generation APIs. Microsoft may remove > this API in future releases. [BCryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom [CryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom
Notes: Merged: https://.com/ruby/ruby/pull/4924
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | random.c | 22 | ||||
-rw-r--r-- | win32/Makefile.sub | 2 |
3 files changed, 23 insertions, 3 deletions
@@ -1115,7 +1115,7 @@ main() AC_CHECK_FUNCS(cygwin_conv_path) AC_LIBOBJ([langinfo]) ], -[mingw*], [ LIBS="-lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi $LIBS" ac_cv_header_pwd_h=no ac_cv_header_utime_h=no ac_cv_header_sys_ioctl_h=no @@ -42,6 +42,7 @@ # include <winsock2.h> # include <windows.h> # include <wincrypt.h> #endif #if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) @@ -544,6 +545,7 @@ fill_random_bytes_syscall(void *buf, size_t size, int unused) #endif } #elif defined(_WIN32) STATIC_ASSERT(sizeof_HCRYPTPROV, sizeof(HCRYPTPROV) == sizeof(size_t)); /* Although HCRYPTPROV is not a HANDLE, it looks like @@ -561,7 +563,7 @@ release_crypt(void *p) } static int -fill_random_bytes_syscall(void *seed, size_t size, int unused) { static HCRYPTPROV perm_prov; HCRYPTPROV prov = perm_prov, old_prov; @@ -588,6 +590,24 @@ fill_random_bytes_syscall(void *seed, size_t size, int unused) CryptGenRandom(prov, size, seed); return 0; } #elif defined HAVE_GETRANDOM static int fill_random_bytes_syscall(void *seed, size_t size, int need_secure) @@ -277,7 +277,7 @@ LIBS = user32.lib advapi32.lib shell32.lib ws2_32.lib !if $(MSC_VER) >= 1400 LIBS = $(LIBS) iphlpapi.lib !endif -LIBS = $(LIBS) imagehlp.lib shlwapi.lib $(EXTLIBS) !endif !if !defined(MISSING) MISSING = crypt.obj ffs.obj langinfo.obj lgamma_r.obj strlcat.obj strlcpy.obj win32/win32.obj win32/file.obj setproctitle.obj |