bouncycastle出错!证书的公钥与指定的值不匹配

bouncycastle出错!证书的公钥与指定的值不匹配,bouncycastle,Bouncycastle,请帮助我; 我使用bouncy castle创建带有私有/公共密钥DSA的证书x.509,我使用以下代码: SecureRandom随机DSA=新的SecureRandom() certGendsa.AddExtension(X509Extensions.AuthorityKeyIdentifier,true,新的AuthorityKeyIdentifierStructure(cert));//cert是权威 certGendsa.AddExtension(X509Extensi

请帮助我; 我使用bouncy castle创建带有私有/公共密钥DSA的证书x.509,我使用以下代码:

SecureRandom随机DSA=新的SecureRandom()

certGendsa.AddExtension(X509Extensions.AuthorityKeyIdentifier,true,新的AuthorityKeyIdentifierStructure(cert));//cert是权威

        certGendsa.AddExtension(X509Extensions.ExtendedKeyUsage, false, new ExtendedKeyUsage(us));
        certGendsa.AddExtension(X509Extensions.KeyUsage, true, new KeyUsage(KeyUsage. CrlSign|KeyUsage.KeyCertSign));
        certGendsa.AddExtension(X509Extensions.BasicConstraints, true, new BasicConstraints(false));
//私人参数:

            DSACryptoServiceProvider rcspdsa = new DSACryptoServiceProvider();
            DSAParameters parmsdsa = new DSAParameters();
            parmsdsa.X = dsaprivkey2.X.ToByteArrayUnsigned();
            parmsdsa.P= dsaprivkey2.Parameters.P.ToByteArrayUnsigned();
            parmsdsa.Q= dsaprivkey2.Parameters.Q.ToByteArrayUnsigned();
            parmsdsa.G= dsaprivkey2.Parameters.G.ToByteArrayUnsigned(); 

            rcspdsa.ImportParameters(parmsdsa);

            Pkcs12Store pkcs12Storedsa = new Pkcs12StoreBuilder().Build();

            byte[] importcertds = DotNetUtilities.ToX509Certificate(certdsa).Export(System.Security.Cryptography.X509Certificates.X509ContentType.Pkcs12, "password");
            var importcertdsa = new X509Certificate2(importcertds, "password");

            X509CertificateEntry cedsa = new X509CertificateEntry(DotNetUtilities.FromX509Certificate(importcertdsa));
            pkcs12Storedsa.SetCertificateEntry("DSACertificate", cedsa);
            pkcs12Storedsa.SetKeyEntry("DSAPrivKey", new AsymmetricKeyEntry(DotNetUtilities.GetDsaKeyPair(rcspdsa).Private), new[] { cedsa });

            pkcs12Storedsa.Save(File.Open("dsacert.pfx", FileMode.OpenOrCreate), "password".ToCharArray(), new SecureRandom());

            rcspdsa.PersistKeyInCsp = true;

            DSACryptoServiceProvider.UseMachineKeyStore = true;
            importcertdsa.PrivateKey = rcspdsa;// hear is the exception
//将证书添加到当前用户:

              var storedsa = new X509Store("Root", StoreLocation.CurrentUser);
              storedsa.Open(OpenFlags.ReadWrite);
            storedsa.Add(importcertdsa);
            storedsa.Close();
问题是我收到了一个例外:

加密意外操作异常: 证书的公钥对应于证书的公钥(证书的公钥与指定的值不匹配) ) 异常是在指令处引发的:

importcertdsa.PrivateKey=rcspdsa

有人能帮我吗


非常感谢

您解决了这个问题吗?出了什么问题?我面临着同样的问题……对于那些可能发现这个问题的人来说——类似的问题在这里得到了解决-
              var storedsa = new X509Store("Root", StoreLocation.CurrentUser);
              storedsa.Open(OpenFlags.ReadWrite);
            storedsa.Add(importcertdsa);
            storedsa.Close();