Comment convertir le fichier clé pkcs8 au format DER dans #C?
Question
Comment convertir le fichier clé de pkcs8 au format DER, pour obtenir la clé privée et publique au format Xml?
avec OpenSSL je peux le faire en utilisant: OpenSSL pkcs8 -inform DER -dans aaa010101aaa_FIEL.key aaa.txt -out
aaa010101aaa_FIEL.key est un fichier bynary
Je suis en train de le faire avec la bibliothèque Bouncy Castle mais j'ai des problèmes pour créer de nouvelles EncryptedPrivateKeyInfo (...
il y a un poste à faire en java, mais j'ai besoin dans c # Comment lire un mot de passe crypté avec la clé java?
La solution 2
Je trouve 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();
Autres conseils
documentation BouncyCastle est assez rare et je n'ai pas fait cette chose exacte, mais vous voulez 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();
}
}
et EPKI.GetDerEncoded () vous donnerait la chose DER formaté. Aucune garantie que cela fonctionne, mais PemReader devraient au moins vous mettre sur la bonne voie.