Как преобразовать файл ключа pkcs8 в формат DER в #C? - PullRequest
0 голосов
/ 13 ноября 2010

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

с openssl я могу сделать это используя: openssl pkcs8 -информировать DER -в aaa010101aaa_FIEL.key -out aaa.txt

aaa010101aaa_FIEL.key isnary file

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

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

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

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

            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

1 голос
/ 13 ноября 2010

Документация BouncyCastle довольно редкая, и я не сделал этого точно, но вы захотите использовать Org.BouncyCastle.OpenSsl.PemReader для чтения файла в (вероятно) Org.BouncyCastle.Asn1.Pkcs.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 () даст вам отформатированный объект DER.Нет гарантий, что это сработает, но PemReader должен, по крайней мере, поставить вас на правильный путь.

...