Как конвертировать файл ключа PKCS8 в формат DER в #C?

StackOverflow https://stackoverflow.com/questions/4171658

  •  09-10-2019
  •  | 
  •  

Вопрос

Как конвертировать файл ключа PKCS8 в формат DER, чтобы получить частный и открытый ключ в формате XML?

С OpenSSL я могу сделать это, используя: openssl pkcs8 -inform der -in aaa010101aaa_fiel.key -out aaa.txt

AAA010101AAA_FIEL.KEY BYNARY FILE

Я пытаюсь сделать это с библиотекой Bouncy Castle, но у меня есть проблемы с созданием нового EncryptedPrivateKeyInfo (...

Есть сообщение, чтобы сделать это в Java, но мне нужно в C #Как прочитать зашифрованный ключ паролем с Java?

Это было полезно?

Решение 2

Я нашел ответ!

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

Как загрузить ключ формата бинарного файла PKCS8

Другие советы

Документация BounCactlecle довольно редкая, и я не делал этого точного, но вы захотите использовать org.bouncyctle.Openssl.pemReader, чтобы прочитать файл в (возможно) org.bouncyctlecle.asn1.pks.encryptedprivateKeyInfo, как это :

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

а потом epki.getderencoded () даст вам отформатированную вещь. Нет гарантий, что это будет работать, но PemReader должен, по крайней мере, поставить вас на правильный путь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top