2016-11-22 51 views
1

我遇到了生成证书的问题。我使用Portable-BouncyCastle on 通用Windows平台。它是1.7版本。我无法创建SecureRandom和ISignatureFactory,因为在此版本库中存在以下问题:CryptoApiRandomGeneratorISignatureFactoryAsn1SignatureFactory。有谁知道如何在没有他们的情况下生成证书?这里是我的功能:如何生成证书 - 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);