Mam obiekt AsymmetricKeyParameter dla klucza prywatnego i publicznego. Jaki jest najłatwiejszy sposób sprawdzenia, czy pasują?Jak sprawdzić, czy para kluczy prywatnych/publicznych pasuje do siebie przy użyciu (.NET/BouncyCastle)?
Próbuję zaszyfrować jakiś tekst (klucz prywatny) i odszyfrować część tekstu (klucz publiczny). Do tej pory nie byłem w stanie tego zrobić, ale wydaje się, że to niewłaściwe podejście.
Aktualizacja: Oto przykładowy kod:
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
}
Jeśli odszyfrowujesz kluczem publicznym, czy faktycznie próbujesz podpisać dane zamiast szyfrować? – weston
Chcę dopasować klucze, po prostu nie wiem, jak to zrobić. –