キー ストアから引き出しRSACryptoServiceProvider
た I から新しいオブジェクトを開始する最良の方法は何ですか? X509Certificate2
証明書は、公開鍵 (暗号化用) と秘密鍵 (復号化用) の両方に関連付けられています。
私は現在この方法を使用してFromXmlString
いますが、もっと良い方法があるはずです。
ありがとう
キー ストアから引き出しRSACryptoServiceProvider
た I から新しいオブジェクトを開始する最良の方法は何ですか? X509Certificate2
証明書は、公開鍵 (暗号化用) と秘密鍵 (復号化用) の両方に関連付けられています。
私は現在この方法を使用してFromXmlString
いますが、もっと良い方法があるはずです。
ありがとう
RSACryptoServiceProvider publicKeyProvider =
(RSACryptoServiceProvider)certificate.PublicKey.Key;
と
RSACryptoServiceProvider privateKeyProvider =
(RSACryptoServiceProvider)certificate.PrivateKey;
証明書の公開鍵プロパティまたは秘密鍵プロパティのキー プロパティは、AsymmetricAlgorithm 型です。
Blowdart の答えは確かに正しいです。ただし、明確にするために、RSACryptoServiceProvider インスタンスにX509 証明書の公開鍵と秘密鍵の両方を含める場合は、そのことを指摘しておく必要があります(証明書に秘密鍵があると仮定します)。証明書の HasPrivateKey プロパティを確認してください。
RSACryptoServiceProvider rsa;
if (cert.HasPrivateKey)
rsa = (RSACryptoServiceProvider)cert.PrivateKey;
else
rsa = (RSACryptoServiceProvider)cert.PublicKey.Key;
公開鍵のみが存在する RSA の場合、RSA パラメータは Exponent と Modulus のみになり、その他はすべて null になります。一方、秘密鍵が存在する場合、RSA パラメータには D、DP、DQ、Exponent、InverseQ、Modulus、P、および Q が含まれます。