On Fri, 30 Sep 2022, Alvin Wong wrote:

On 30/9/2022 5:25, Martin Storsjö wrote:
+  bcrypt = LoadLibraryW(L"bcrypt.dll");
+  if (bcrypt) {
+    NTSTATUS (WINAPI *pBCryptOpenAlgorithmProvider)(BCRYPT_ALG_HANDLE *, 
LPCWSTR, LPCWSTR, ULONG);
+    NTSTATUS (WINAPI *pBCryptGenRandom)(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, 
ULONG);
+    NTSTATUS (WINAPI *pBCryptCloseAlgorithmProvider)(BCRYPT_ALG_HANDLE, ULONG);
+    pBCryptOpenAlgorithmProvider = (void*)GetProcAddress(bcrypt, 
"BCryptOpenAlgorithmProvider");
+    pBCryptGenRandom = (void*)GetProcAddress(bcrypt, "BCryptGenRandom");
+    pBCryptCloseAlgorithmProvider = (void*)GetProcAddress(bcrypt, 
"BCryptCloseAlgorithmProvider");
+
+    if (pBCryptOpenAlgorithmProvider && pBCryptGenRandom && 
pBCryptCloseAlgorithmProvider) {
+      BCRYPT_ALG_HANDLE alg;
+      if (BCRYPT_SUCCESS(pBCryptOpenAlgorithmProvider(&alg, 
BCRYPT_RNG_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0))) {
+        pBCryptGenRandom(alg, (void*)&__stack_chk_guard, 
sizeof(__stack_chk_guard), 0);
Should this also check the status result of pBCryptGenRandom(...)?

Thanks - yeah I guess it should, updating the patch locally with that change.

Then again, I'm not at all convinced (but I'm open for discussion) that we should include this patch at all - I included it mostly for reference and discussion here.

// Martin

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to