Décrypter avec PrivateKey X. 509 Certificate

J'ai un problème pour déchiffrer un message usgin X. 509 Certificate.

- Je générer mon certificat avec makecert avec ces options:

makecert -r -pe -n "CN=MyCertificate" -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer

Et la PrivateKey était "monmotdepasse".

Mon problème est quand je veux pour déchiffrer un message à chiffrer avec un certificat précédent en c#.

J'ai trouvé cette classe http://blog.shutupandcode.net/?p=660, mais dans le X509Decrypt méthode toujours le PrivateKey est null.

public static byte[] X509Decrypt(byte[] data, chaîne certificateFile, chaîne de mot de passe) 
{ 
//charger le certificat et de déchiffrer les données spécifiées 
en utilisant (var ss = nouveau Système.De sécurité.SecureString()) 
{ 
foreach (var keyChar dans mot de passe.ToCharArray()) 
ss.AppendChar(keyChar); 

//charger le mot de passe protégé fichier de certificat 
X509Certificate2 cert = new X509Certificate2(certificateFile, ss); 

à l'aide de (RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey) 
{ 
retour rsa.Décrypter(données, true); 
} 
} 
} 

J'ai essayé en passant le fichier de certificat (.cer)

X509DecryptString(jeton, @"c:\CA.cer", "mypassword"); 

Et en passant le fichier pvk (.pvk)

X509DecryptString(jeton, @"c:\CA.pvk", "mypassword"); 

Mais toujours ont que le PrivateKey propriété est null.

Quelqu'un peut-il me guider pour déchiffrer le message en utilisant le fichier pvk?

Merci,

Jose

OriginalL'auteur jomarmen | 2010-11-04