CryptographicException при загрузке X509Certificate2 из файла PFX программно: - PullRequest
0 голосов
/ 25 июня 2018

В файле tmpAEC4.pfx у меня есть содержимое, представляющее сертификат, установленный внизу этого сообщения.Когда я пытаюсь создать экземпляр X509Certificate2:

var data = File.ReadAllBytes(@"C:\Temp\tmpAEC4.pfx");
new X509Certificate2(data, "9G8U922PWY");

, я получаю следующее исключение

(System.Security.Cryptography.CryptographicException: 'An error occurred during encode or decode operation.):

Пароль правильный, как будто я импортирую pfx вручную, он работает.Есть идеи?

Сертификат:

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

1 Ответ

0 голосов
/ 25 июня 2018

Проблема в том, что вы читаете текстовый файл Base64 как двоичный файл. Вам нужно прочитать текст, а затем преобразовать текст Base64 в байтовый массив:

String base64 = File.ReadAllText(@"C:\Temp\tmpAEC4.pfx");
Byte[] data = Convert.FromBase64String(base64);
var cert = new X509Certificate2(data, "9G8U922PWY");

File класс принадлежит System.IO пространству имен;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...