Tengo el objeto AsymmetricKeyParameter para clave privada y pública. ¿Cuál es la forma más fácil de ver si coinciden?¿Cómo comprobar si el par de claves privadas/públicas coincide con (.NET/BouncyCastle)?
Estoy intentando cifrar algo de texto (clave privada) y descifrar algo de texto (clave pública). Hasta ahora no he podido hacer eso pero parece ser un enfoque equivocado.
Actualización: Aquí es código de ejemplo:
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
}
Si está descifrando con clave pública, ¿está realmente intentando firmar los datos en lugar de cifrar? – weston
Quiero hacer coincidir las teclas, simplemente no sé cómo hacerlo. –