http://bugs.winehq.org/show_bug.cgi?id=17760
Summary: CryptAcquireContext: Use MS_ENHANCED_PROV instead of MS_DEF_PROV when pszProvider == NULL Product: Wine Version: 1.1.17 Platform: All OS/Version: All Status: UNCONFIRMED Severity: normal Priority: P2 Component: crypt32 AssignedTo: wine-bugs@winehq.org ReportedBy: mb@smartftp.com
If the pszProvider parameter in the CryptAcquireContext function is NULL Wine seems to use the MS_DEF_PROV provider (Base) by default. However on Windows (at least XP and higher) the default provider depends on many factors (e.g. registry) and by default (see Note 1) the MS_ENHANCED_PROV or a newer/stronger provider is selected.
The result is that applications that use CryptAcquireContext with a NULL pszProvider parameter assume that a Strong or better provider is selected and therefore fail under Wine if they use an algorithm (or keylen) that is not supported by the Base provider.
I strongly recommend to use the Strong/Enhanced provider in this case.
Note 1 ====== "When an application calls CryptAcquireContext and specifies a provider type but no provider name, the function looks for a named provider, first checking a list of default named providers associated with the logged-on user and, if that fails, from a list of default named providers associated with the computer. After the provider name has been determined, the CryptAcquireContext function searches for the CSP for that provider, loads it, and returns its handle." Reference: http://msdn.microsoft.com/en-us/library/aa380246(VS.85).aspx