What is the best way to initate a new RSACryptoServiceProvider
object from an X509Certificate2
I pulled out of a key store? The certificate is associated with both public (for encryption) and private (for decryption) keys.
I'm current using the FromXmlString
method but there must be a better way.
Thanks
Note: While this is the accepted answer and was valid back in 2011, this code won't work now under .NET Core. See this answer if you are using .NET Framework 4.6+, or .NET Core / .NET.
RSACryptoServiceProvider publicKeyProvider =
(RSACryptoServiceProvider)certificate.PublicKey.Key;
and
RSACryptoServiceProvider privateKeyProvider =
(RSACryptoServiceProvider)certificate.PrivateKey;
The key property on the public or private key property of the certificate is of type AsymmetricAlgorithm.