Tag: x509certificate bouncycastle

从BouncyCastle X509证书获取私钥? C#

通常,当我从密钥库中获取X509Certificate2时,我可以调用.PrivateKey来检索证书的私钥作为AsymmetricAlgorithm 。 但是我决定使用Bouncy Castle,它的X509Certificate实例只有一个getPublicKey(); 我看不到从私有密钥中获取私钥的方法。 有任何想法吗? 我从我的Windows-MY密钥库中获取了X509Certificate2,然后使用: //mycert is an X509Certificate2 retrieved from Windows-MY Keystore X509CertificateParser certParser = new X509CertificateParser(); X509Certificate privateCertBouncy = certParser.ReadCertificate(mycert.GetRawCertData()); AsymmetricKeyParameter pubKey = privateCertBouncy.GetPublicKey(); //how do i now get the private key to make a keypair? 无论如何将AsymmetricAlgorithm (C#私钥)转换为AsymmetricKeyParameter (bouncycastle私钥)?

生成的签名X.509客户端证书无效(没有证书链到其CA)

我使用Bouncy Castle生成X.509客户端证书并使用已知的CA唱出它们。 首先,我从证书存储区读取CA证书,生成客户端证书,使用CA对其进行签名。 对以下问题进行证书validation失败 无法将证书链构建到受信任的根颁发机构。 据我了解,这是由于证书与CA无关。 这是一个代码示例: public static X509Certificate2 GenerateCertificate(X509Certificate2 caCert, string certSubjectName) { // Generate Certificate var cerKp = kpgen.GenerateKeyPair(); var certName = new X509Name(true,certSubjectName); // subjectName = user var serialNo = BigInteger.ProbablePrime(120, new Random()); X509V3CertificateGenerator gen2 = new X509V3CertificateGenerator(); gen2.SetSerialNumber(serialNo); gen2.SetSubjectDN(certName); gen2.SetIssuerDN(new X509Name(true,caCert.Subject)); gen2.SetNotAfter(DateTime.Now.AddDays(100)); gen2.SetNotBefore(DateTime.Now.Subtract(new TimeSpan(7, 0, 0, 0))); gen2.SetSignatureAlgorithm(“SHA1WithRSA”); gen2.SetPublicKey(cerKp.Public); AsymmetricCipherKeyPair […]

在Root中插入证书(带私钥),LocalMachine证书存储在.NET 4中失败

我在localmachine的根证书存储中插入带有私钥的新CA证书时遇到问题。 这是发生的事情: //This doesn’t help either. new StorePermission (PermissionState.Unrestricted) { Flags = StorePermissionFlags.AddToStore }.Assert(); var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine); privkey.PersistKeyInCsp = true; //This shouldn’t be necessary doesn’t make a difference what so ever. RSACryptoServiceProvider.UseMachineKeyStore = true; cert.PrivateKey = privkey; store.Open (OpenFlags.MaxAllowed); store.Add (cert); store.Close (); 证书被插入,它看起来都很花哨:(见!) 注意:据说它有私钥。 所以你会说用FindPrivateKey可以找到它 C:\Users\Administrator\Desktop>FindPrivateKey.exe Root LocalMachine -t “54 11 […]