Mam problem z odszyfrowaniem certyfikatu X.509 usg.Odszyfruj z certyfikatem PrivateKey X.509
wygenerować mój certyfikat z MakeCert z tej opcji:
makecert -r -pe -n "CN=MyCertificate" -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer
A PrivateKey była "mojehasło".
Mój problem polega na tym, że chcę odszyfrować wiadomość zaszyfrowaną przy użyciu poprzedniego certyfikatu w języku C#.
Znalazłem tę klasę http://blog.shutupandcode.net/?p=660, ale w metodzie X509Decrypt, zawsze PrivateKey ma wartość NULL.
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); } } }
Próbowałem przechodzącą plik certyfikatu (cer)
X509DecryptString(token, @"c:\CA.cer", "mypassword");
i przechodzącej plik PVK (.pvk)
X509DecryptString(token, @"c:\CA.pvk", "mypassword");
Ale zawsze dobrze mieć, że nieruchomość PrivateKey jest null.
Czy ktoś może mi pomóc w odszyfrowaniu wiadomości przy użyciu pliku PVK?
Dzięki,
Jose
Myliłem się. "Mypassword" nie był kluczem prywatnym. Dzięki za komentarz był pomocny. Dzięki nowemu plikowi pfx mogę odszyfrować wiadomość. – jomarmen