Pregunta

Cómo convertir archivo de clave PKCS8 al formato DER, para obtener la clave privada y pública en formato XML?

con OpenSSL que puede hacerlo utilizando: openssl PKCS8 -Informar DER -en aaa010101aaa_FIEL.key salida privado aaa.txt

aaa010101aaa_FIEL.key es Bynary archivo

Estoy tratando de hacerlo con la biblioteca Castillo Hinchable pero tengo problemas para crear nuevas EncryptedPrivateKeyInfo (...

hay un puesto de hacerlo en Java, pero lo necesito en c # Cómo leer una clave de cifrado de contraseñas con java?

¿Fue útil?

Solución 2

He encontrado la respuesta!

            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();

Cómo cargar PKCS8 clave de formato de archivo binario

Otros consejos

documentación BouncyCastle es bastante escaso y no he hecho esta cosa exacta, pero tendrá que utilizar un Org.BouncyCastle.OpenSsl.PemReader para leer el archivo en un (probablemente) Org.BouncyCastle.Asn1.Pkcs.EncryptedPrivateKeyInfo , de esta manera:

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();
 }
}

y luego EPKI.GetDerEncoded () que darían lo DER formateado. No hay garantías de que esto va a funcionar, pero PemReader deberían, al menos, le puso en el camino correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top