«Не удается найти запрошенный объект» Ошибка загрузки * закрытого ключа * в X509Certificate2 в .Net Core - PullRequest
0 голосов
/ 15 марта 2019

Мы используем компонент System.Security.Cryptography.X509Certificates в приложении .Net Core и сталкиваемся с этой ошибкой, пытаясь загрузить закрытый ключ.Единственная функциональность, которая нам нужна для сертификата, - это расшифровка строки и проверка значения NotAfter.Код ошибки:

var cert = new X509Certificate2(privateKeyByteArr);

Исключение:

    Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException
  HResult=0x80092009
  Message=Cannot find the requested object
 Source=System.Security.Cryptography.X509Certificates  Cannot find the requested object
  StackTrace:
   at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
   at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] data)
   at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData)
   at Telematics.CommonUtilities.Services.RSACryptoService.DecryptKey(String key, Byte[] privateKeyByteArr) in D:\Users\I25266\Source\Repos\common utils feature b\telematics.commonutilities\Telematics.CommonUtilities\Services\RSACryptoService.cs:line 383

Тот же подход отлично работает с открытым ключом, и этот же закрытый ключ может быть успешно использован сBouncyCastle.Я также пытался X509Certificate2Collection Import () метод - та же ошибка.Несмотря на то, что у нас есть обходной путь, я бы хотел использовать нативные компоненты .Net.

Любое предложение или объяснение будет очень приветствоваться.

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