rsaenh: Detect AES prototype provider correctly

Bruno Jesus 00cpxxx at gmail.com
Sat Jul 26 15:41:58 CDT 2014


When the XP provider for AES [1] is requested wine does not find it
and default to the Strong provider.

Fixes the remaining problem in bug
http://bugs.winehq.org/show_bug.cgi?id=32318 and may help/fix bug
http://bugs.winehq.org/show_bug.cgi?id=32758

[1] "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
-------------- next part --------------
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index b4829f0..3ad28f9 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -1286,7 +1286,8 @@ static HCRYPTPROV new_key_container(PCCH pszContainerName, DWORD dwFlags, const
                 pKeyContainer->dwPersonality = RSAENH_PERSONALITY_ENHANCED;
             } else if (!strcmp(pVTable->pszProvName, MS_DEF_RSA_SCHANNEL_PROV_A)) { 
                 pKeyContainer->dwPersonality = RSAENH_PERSONALITY_SCHANNEL;
-            } else if (!strcmp(pVTable->pszProvName, MS_ENH_RSA_AES_PROV_A)) {
+            } else if (!strcmp(pVTable->pszProvName, MS_ENH_RSA_AES_PROV_A) ||
+                       !strcmp(pVTable->pszProvName, MS_ENH_RSA_AES_PROV_XP_A)) {
                 pKeyContainer->dwPersonality = RSAENH_PERSONALITY_AES;
             } else {
                 pKeyContainer->dwPersonality = RSAENH_PERSONALITY_STRONG;


More information about the wine-patches mailing list