http://bugs.winehq.org/show_bug.cgi?id=10506
Summary: wine crypt32 needs DSS provider to support more .NET apps which use cryptography API Product: Wine Version: CVS/GIT Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: wine-crypt32 AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net
Hello,
while playing around with .NET apps I found various shortcomings when it comes to native backends for certains parts of .NET One is the state of cryptographic providers (crypt32).
Many .NET apps use either default RSA or DSS provider. Currently the DSS and enhanced DSS provider are missing, resulting in failure of several .NET apps.
Would be nice if wine gets DSS provider too.
Trace log showing failure of typical .NET app trying to query DSS provider:
--- snip --- trace:crypt:CryptAcquireContextW (0x33d6b8, (null), L"Microsoft Enhanced Cryptographic Provider v1.0", 1, f0000000) trace:crypt:RSAENH_CPAcquireContext (phProv=0x1771b8, pszContainer=(null), dwFlags=f0000000, pVTable=0x1771c8) trace:crypt:CryptReleaseContext (0x1771a8, 00000000) trace:crypt:RSAENH_CPReleaseContext (hProv=00000002, dwFlags=00000000) trace:crypt:CryptAcquireContextW (0x33d72c, (null), L"Microsoft Enhanced Cryptographic Provider v1.0", 1, f0000000) trace:crypt:RSAENH_CPAcquireContext (phProv=0x177450, pszContainer=(null), dwFlags=f0000000, pVTable=0x175f98) trace:crypt:CryptCreateHash (0x177440, 0x8004, 0x0, 00000000, 0x33d83c) trace:crypt:RSAENH_CPCreateHash (hProv=00000002, Algid=00008004, hKey=00000000, dwFlags=00000000, phHash=0x175e04) trace:crypt:CryptAcquireContextW (0x33d6f4, (null), (null), 13, f0000000) trace:crypt:CryptAcquireContextW Did not find registry entry of crypto provider for L"Software\Microsoft\Cryptography\Defaults\Provider Types\Type 013". trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b841300 trace:seh:raise_exception info[0]=80090017 trace:seh:raise_exception eax=7b82c455 ebx=7b8ad1e4 ecx=00000000 edx=0033d348 esi=0033d348 edi=e0434f4d trace:seh:raise_exception ebp=0033d310 esp=0033d2ac cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00000212 --- snip ---
resulting in CLR exception:
--- snip --- Unhandled Exception: System.InvalidOperationException: An error occurred creating the form. See Exception.InnerException for details. The error is: The type initializer for 'Sunisoft.IrisSkin.SkinEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Sunisoft.IrisSkin.SkinEngine' threw an exception. ---> System.Security.Cryptography.CryptographicException: Unknown error "-2146893801". at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) at System.Security.Cryptography.Utils._AcquireCSP(CspParameters param, SafeProvHandle& hProv) at System.Security.Cryptography.Utils.AcquireProvHandle(CspParameters parameters) at System.Security.Cryptography.Utils.get_StaticDssProvHandle() at System.Security.Cryptography.DSACryptoServiceProvider.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.DSA.FromXmlString(String xmlString) at Sunisoft.IrisSkin.SkinEngine..cctor() --- snip ---
Type 001 "RSA Full (Signature and Key Exchange)" and Type 012 "RSA SChannel" are currently implemented in wine Additionally needed:
Type 003 "DSS Signature" (base DSS provider) Type 013 "DSS Signature with Diffie-Hellman Key Exchange" (enhanced DSS provider) Type 018 "Diffie-Hellman SChannel" (optional?)
Regards