2010-11-13 5 views
0

Comment convertir le fichier clé pkcs8 au format DER, pour obtenir la clé privée et publique au format Xml?Comment convertir le fichier de clé pkcs8 au format DER en #C?

avec OpenSSL je peux le faire en utilisant: OpenSSL pkcs8 -inform DER -dans aaa010101aaa_FIEL.key aaa.txt -out

aaa010101aaa_FIEL.key est le fichier bynary

Je suis en train de le faire avec Bouncy Castle bibliothèque mais j'ai des problèmes pour créer de nouvelles EncryptedPrivateKeyInfo (...

il y a un poste à faire en java, mais je dois en C# How to read a password encrypted key with java?

Répondre

1

J'ai trouvé la réponse!

  byte[] dataKey = File.ReadAllBytes(fileName); 

     Org.BouncyCastle.Crypto.AsymmetricKeyParameter asp = 
      Org.BouncyCastle.Security.PrivateKeyFactory.DecryptKey(pass.ToCharArray(), dataKey); 

     MemoryStream ms = new MemoryStream(); 
     TextWriter writer = new StreamWriter(ms); 
     System.IO.StringWriter stWrite = new System.IO.StringWriter(); 
     Org.BouncyCastle.OpenSsl.PemWriter pmw = new PemWriter(stWrite); 
     pmw.WriteObject(asp); 
     stWrite.Close(); 
     return stWrite.ToString(); 

How to Load pkcs8 binary file format key

+0

pass est une chaîne (le mot de passe), fileName est le chemin vers .key fichier binaire au format DER –

0

Bo La documentation de uncyCastle est assez clairsemée et je n'ai pas fait exactement la même chose, mais vous voudrez utiliser un Org.BouncyCastle.OpenSsl.PemReader pour lire le fichier dans un (probablement) Org.BouncyCastle.Asn1.Pkcs.EncryptedPrivateKeyInfo, comme ceci :

using (FileStream FS = File.Open("whatever.key")) 
{ 
using (TextReader TR = new StreamReader(FS)) 
    { 
    PR = new Org.BouncyCastle.OpenSsl.PemReader(TR); 
    EPKI = (Org.BouncyCastle.Asn1.Pkcs.EncryptedPrivateKeyInfo)PR.ReadObject(); 
} 
} 

puis EPKI.GetDerEncoded() vous donnera la DER chose formatée. Aucune garantie que cela fonctionnera, mais PemReader devrait au moins vous mettre sur la bonne voie.

+0

Dans ce code (je l'ai remplacé pour PR var PR, et pour ePKI var ePKI), PR retourne une valeur, mais ePKI renvoie NULL. didn travail :( –

+0

ce code ne fonctionne pas –

Questions connexes