Я недавно обнаружил OpenSSL.NET, и это довольно милая маленькая обертка.OpenSSL.NET не может экспортировать закрытый ключ с нулевым шифром
Я пытаюсь выполнить следующий код:.
public static void DoSomething(byte[] buf)
{
OpenSSL.Core.BIO input = new OpenSSL.Core.BIO(buf);
OpenSSL.X509.X509Certificate b = OpenSSL.X509.X509Certificate.FromPKCS12(input, "passphrase");
OpenSSL.Core.BIO outs = OpenSSL.Core.BIO.MemoryBuffer(false);
b.PrivateKey.WritePrivateKey(outs, OpenSSL.Crypto.Cipher.Null, "passphrase");
outs.SetClose(OpenSSL.Core.BIO.CloseOption.Close);
Console.WriteLine(outs.ReadString());
}
Проблема приходит в «b.PrivateKey.WritePrivateKey (..» линия Я хочу написать секретный ключ без какого-либо шифрования По. в спецификации, если я использую Null шифра типа это должно сделать трюк, но он никогда не работает, независимо от CERT я использую в BUF
Вот исключение:.
ошибка: 0D0A706C: ASN1 процедуры кодирования: PKCS5_pbe2_set: шифр не имеет идентификатора объекта error: 2307D00D: PKCS12 подпрограммы: PKCS8_encrypt: ASN1 lib
Я знаю, что эта часть работает нормально, потому что, если я укажу какой-либо другой тип шифрования, он обязательно будет экспортировать закрытый ключ. У кого-нибудь есть предложения?
PrivateKey.ToString() создает ASCII (читаемый человека) представление ключа. Правда все данные присутствуют, но я ищу, чтобы получить данные RAW/Unencrypted двоичных частных ключей. – Nick
Ваш второй комментарий работает! Указывает на ВАС! – Nick