получаю исключение, когда пытаюсь прочесть приватный ключ. кто знает в чем может быть причина?
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, но прочитать я его все равно не могу почему-то
Обсуждают сегодня