プライベートキーと公開キーにはAsymmetricKeyParameterオブジェクトがあります。一致するかどうかを確認する最も簡単な方法は何ですか?(.NET/BouncyCastle)を使用してプライベート/パブリックキーのペアが一致するかどうかを確認する方法は?
テキスト(秘密鍵)を暗号化してテキスト(公開鍵)を復号しようとしています。 これまで私はそれを行うことができませんでしたが、間違ったアプローチのように思えます。
アップデート:ここでは、サンプルコードです:
X509Certificate2 c = new X509Certificate2(@"certificate.cer");
byte[] privateKeyData = System.IO.File.ReadAllBytes(@"private.key");
Org.BouncyCastle.X509.X509Certificate cert = DotNetUtilities.FromX509Certificate(c);
RsaPrivateCrtKeyParameters privateKey = (RsaPrivateCrtKeyParameters)PrivateKeyFactory.CreateKey(privateKeyData);
RsaKeyParameters publicKey = (RsaKeyParameters)cert.GetPublicKey();
if (privateKey.Modulus.Equals(publicKey.Modulus) && publicKey.Exponent.Equals(privateKey.PublicExponent))
{
//they match
}
公開鍵で復号化する場合、実際に暗号化するのではなくデータに署名しようとしていますか? – weston
私はキーにマッチしたい、私はちょうどそれをやり遂げる方法について知りません。 –