使用充气城堡和证书私钥的数字签名
Digital signature using bouncy castle and certificate private key
我正在开发一项功能来对某些内容进行数字签名。我有带有私钥的有效证书。如何使用私钥和充气城堡进行数字签名?
我尝试了以下方法,但想要一些正确的方法来使用充气城堡实现同样的效果:
X509Certificate2 signingCert =
CryptoHelper.FindCertificate("21A6107EC254457AAF3D4D6FD286FB79");
var rsaObj = (RSACryptoServiceProvider)signingCert.PrivateKey;
_privateKey = rsaObj.ExportParameters(true);
谢谢!
根据您的代码,我不知道您到底需要什么,但是 X509 namespace/code 位于
bcgit/bc-csharp - X509 并且有一个实用程序 class 用于 System.Security.Cryptography
和 BouncyCastle
之间的转换
bcgit/bc-csharp - DotNetUtilities.cs
BouncyCastle 进行了大量测试(和示例)。也看看 bcgit/bc-csharp - TestCertificateGen.cs。也许这对你有帮助。
编辑:一般来说应该是这样的
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;
// Your loaded certificate
X509Certificate cert = null;
// Your loaded RSA key
AsymmetricKeyParameter privateKey = null;
AsymmetricKeyParameter publicKey = cert.GetPublicKey();
ISigner signer = SignerUtilities.GetSigner(cert.SigAlgName);
// Init for signing, you pass in the private key
signer.Init(true, privateKey);
// Init for verification, you pass in the public key
signer.Init(false, publicKey);
问候
我正在开发一项功能来对某些内容进行数字签名。我有带有私钥的有效证书。如何使用私钥和充气城堡进行数字签名?
我尝试了以下方法,但想要一些正确的方法来使用充气城堡实现同样的效果:
X509Certificate2 signingCert =
CryptoHelper.FindCertificate("21A6107EC254457AAF3D4D6FD286FB79");
var rsaObj = (RSACryptoServiceProvider)signingCert.PrivateKey;
_privateKey = rsaObj.ExportParameters(true);
谢谢!
根据您的代码,我不知道您到底需要什么,但是 X509 namespace/code 位于
bcgit/bc-csharp - X509 并且有一个实用程序 class 用于 System.Security.Cryptography
和 BouncyCastle
之间的转换
bcgit/bc-csharp - DotNetUtilities.cs
BouncyCastle 进行了大量测试(和示例)。也看看 bcgit/bc-csharp - TestCertificateGen.cs。也许这对你有帮助。
编辑:一般来说应该是这样的
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;
// Your loaded certificate
X509Certificate cert = null;
// Your loaded RSA key
AsymmetricKeyParameter privateKey = null;
AsymmetricKeyParameter publicKey = cert.GetPublicKey();
ISigner signer = SignerUtilities.GetSigner(cert.SigAlgName);
// Init for signing, you pass in the private key
signer.Init(true, privateKey);
// Init for verification, you pass in the public key
signer.Init(false, publicKey);
问候