Как проверить, совпадает ли пара закрытый/публичный ключ с помощью (.NET / BouncyCastle)?

У меня есть объект AsymmetricKeyParameter для закрытого и открытого ключа. Какой самый простой способ проверить, совпадают ли они?

Я пытаюсь зашифровать некоторый текст (закрытый ключ) и расшифровать некоторый текст (открытый ключ). До сих пор мне не удавалось этого сделать, но это кажется неправильным подходом.

Обновление: Вот пример кода:

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
}
5
задан Evgeni Petrov 18 January 2012 в 15:59
поделиться