Ho un problema per decodificare un messaggio usgin X.509 Certificate.Decifrare con PrivateKey Certificato X.509
ho generare il mio certificato con makecert con queste opzioni:
makecert -r -pe -n "CN=MyCertificate" -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer
E il PrivateKey ero "mypassword".
Il mio problema si verifica quando si desidera decodificare un messaggio crittografato con certificato precedente in C#.
Ho trovato questa classe http://blog.shutupandcode.net/?p=660, ma nel metodo diX509Decrypt allways la PrivateKey è nullo.
public static byte[] X509Decrypt(byte[] data, string certificateFile, string password) { // load the certificate and decrypt the specified data using (var ss = new System.Security.SecureString()) { foreach (var keyChar in password.ToCharArray()) ss.AppendChar(keyChar); // load the password protected certificate file X509Certificate2 cert = new X509Certificate2(certificateFile, ss); using (RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey) { return rsa.Decrypt(data, true); } } }
ho provato passando il file del certificato (cer)
X509DecryptString(token, @"c:\CA.cer", "mypassword");
E passando il file PVK (.pvk)
X509DecryptString(token, @"c:\CA.pvk", "mypassword");
Ma hanno allways che la proprietà PrivateKey è nullo.
Qualcuno può guidarmi a decodificare il messaggio utilizzando il file pvk?
Grazie,
Jose
Ho sbagliato. "Mypassword" non era una chiave privata. Grazie per il tuo commento è stato utile. Con il nuovo file pfx posso decifrare il messaggio. – jomarmen