Estoy intentando encriptar y luego descifrar archivos usando encriptación asimétrica. Creé un certificado de prueba con makecert y lo instalé en mi tienda local de máquinas personales. En el futuro tendré que instalar este certificado en varios servidores, por eso lo he creado con el indicador "-pe", es decir, con una clave privada exportable. Los certificados se han creado e instalado con éxito, veo la nota "Tiene una clave privada que corresponde a este certificado" en mmc.Excepción de "clave incorrecta" para certificados con clave privada exportable
Ahora estoy tratando de cifrar datos con RSACryptoServiceProvider en .NET 3.5. Y tiene éxito. Pero cuando intento descifrarlo, aparece la excepción de "Clave incorrecta".
Si creo el certificado sin la opción "-pe", el mismo código funciona bien para el descifrado. Aquí está el código:
RSA rsaKey = (RSA)myCertificate.PrivateKey;
RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)rsaKey;
byte[] plainText = rsaCsp.Decrypt(encryptedText, true);
También he intentado otro método, usando System.Security.Cryptography.Pkcs espacio de nombres:
EnvelopedCms envelope = new EnvelopedCms();
envelope.Decode(encryptedText);
envelope.Decrypt();
byte[] plainText = envelope.ContentInfo.Content;
El resultado fue el mismo ... ¿Alguien puede ayudar ?
Gracias señor, exactamente lo que me faltaba – KodeKreachor
Esto salvó el día ... gracias por la respuesta Y la explicación. – granadaCoder