Default Provider Type for CspParameters has changed


Hi all,


Before .NET Framework 3.5 SP1, the default provider type for CspParameters was PROV_RSA_FULL (1). Now it’s PROV_RSA_AES (24) for all operating systems which support Microsoft Enhanced RSA and AES Cryptographic Provider (WinXP and higher).
So if your code depends on PROV_RSA_FULL being set as provider type, you will have to explicitly specify it yourself:

CspParameters cspParams = new CspParameters();
cspParams.ProviderType = 1;

RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(cspParams);


 


You can check which CSPs you have here in the registry:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider


And here which CSP types we have and the default CSP per type:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types


You can i.e. check type 24 (RSA Full and AES) here:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 024


 


I hope this helps.


Regards,


 


Alex (Alejandro Campos Magencio)

Comments (0)