使用弹性城堡和证书私钥的数字签名

本文关键字:证书 私钥 数字签名 城堡 | 更新日期: 2023-09-27 18:14:41

我正在开发一个对某些内容进行数字签名的功能。我有带私钥的有效证书。如何使用私钥和弹性城堡进行数字签名?

我尝试了以下方法,但想要一些正确的方法来实现相同的使用弹性城堡:

X509Certificate2 signingCert =
    CryptoHelper.FindCertificate("21A6107EC254457AAF3D4D6FD286FB79");
var rsaObj = (RSACryptoServiceProvider)signingCert.PrivateKey;
_privateKey = rsaObj.ExportParameters(true);

谢谢!

使用弹性城堡和证书私钥的数字签名

我不知道您的代码究竟需要什么,但是这里有X509名称空间/代码bcgit/bc-csharp - X509,有一个实用程序类用于System.Security.CryptographyBouncyCastle之间的转换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);

问候