2016-11-22 4 views
1

У меня проблема с генерацией сертификата. Я использую Portable-BouncyCastle на Универсальная платформа для Windows. Это версия 1.7. Я не могу создать SecureRandom и ISignatureFactory, потому что в этом Verion библиотеки есть проблема с: CryptoApiRandomGenerator, ISignatureFactory и Asn1SignatureFactory. Кто-нибудь знает, как сгенерировать сертификат без них? Вот моя функция:Как сгенерировать сертификат - UWP, BouncyCastle

   DateTime startDate = DateTime.Now; 
       DateTime expiryDate = startDate.AddDays(365); 
       SecureRandom random = new SecureRandom(new CryptoApiRandomGenerator()); 
       ISignatureFactory signatureAlgorithm = new Asn1SignatureFactory("SHA256WITHRSA", _caPrivateKey.GetKey, random); 
       X509V3CertificateGenerator certGen = new X509V3CertificateGenerator(); 
       certGen.SetSerialNumber(BigInteger.ValueOf(DateTime.Now.Millisecond)); 
       certGen.SetIssuerDN(_caCertificate.CertificateProp.SubjectDN); 
       certGen.SetNotBefore(startDate); 
       certGen.SetNotAfter(expiryDate); 
       certGen.SetSubjectDN(_subjectInfo); 
       certGen.SetPublicKey(_subjectPublicKey.GetKey); 
       X509Certificate newCertificate = certGen.Generate(signatureAlgorithm); 

ответ

1

Я нашел ответ на свой вопрос. Раствор представляет собой:

   DateTime startDate = DateTime.Now; 
       DateTime expiryDate = startDate.AddDays(365); 
       X509V3CertificateGenerator certGen = new X509V3CertificateGenerator(); 
       certGen.SetSerialNumber(BigInteger.ValueOf(DateTime.Now.Millisecond)); 
       certGen.SetIssuerDN(_caCertificate.CertificateProp.SubjectDN); 
       certGen.SetNotBefore(startDate); 
       certGen.SetNotAfter(expiryDate); 
       certGen.SetSubjectDN(_subjectInfo); 
       certGen.SetPublicKey(_subjectPublicKey.GetKey); 
       certGen.SetSignatureAlgorithm("SHA1WithRSAEncryption"); 
       X509Certificate newCertificate = certGen.Generate(_caPrivateKey.GetKey);