получаю исключение, когда пытаюсь прочесть приватный ключ. кто знает в чем может быть причина?
                  
                  
                  Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The requested operation is not supported
                  
                  
                  
                  
                  
                  собираю я PFX с помощью CertificateRequest.Create и передаю туда данные, которые хочу сохранить (в субъект и издателя), после чего добавляю ему приватный ключ с помощью CopyWithPrivateKey(pk):
                  
                  
                  using var rsa = RSA.Create();
                  
                  
                  rsa.ImportFromPem(_privateKeyContent);
                  
                  
                  var request = new CertificateRequest("CN=mySubject", rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
                  
                  
                  var certSn = BitConverter.GetBytes(DateTime.Now.ToBinary());
                  
                  
                  var cert = request.Create(
                  
                  
                      new X500DistinguishedName("CN=myIssuer"),
                  
                  
                      X509SignatureGenerator.CreateForRSA(rsa, RSASignaturePadding.Pkcs1),
                  
                  
                      now, now.DateTime.AddYears(1),
                  
                  
                      certSn).CopyWithPrivateKey(rsa);
                  
                  
                  
                  
                  
                  потом я экспортирую байты как pfx и сохраняю в файл: 
                  
                  
                  var data = certificate.Export(X509ContentType.Pfx, password);
                  
                  
                  File.WriteAllBytes(path, data);
                  
                  
                  
                  
                  
                  и наконец хочу прочитать этот pfx:
                  
                  
                  var cert = new X509Certificate2(path, password, X509KeyStorageFlags.Exportable);
                  
                  
                  var subj = cert.Subject;
                  
                  
                  var issuer = cert.Issuer;
                  
                  
                  var rsa = cert.GetRSAPrivateKey() as RSACng;
                  
                  
                  var exportRsaPrivateKey = rsa?.ExportRSAPrivateKey(); // здесь падает исключение
                  
                  
                
блин, я же при чтении помечаю сертификат Exportable и значение HasPrivateKey == true, но прочитать я его все равно не могу почему-то
Обсуждают сегодня