当前位置: 首页 > 知识库问答 >
问题:

使用充气城堡和证书私钥的数字签名

姚培
2023-03-14

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

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

X509Certificate2 signingCert =
    CryptoHelper.FindCertificate("21A6107EC254457AAF3D4D6FD286FB79");

var rsaObj = (RSACryptoServiceProvider)signingCert.PrivateKey;
_privateKey = rsaObj.ExportParameters(true);

谢谢!

共有1个答案

卢晟
2023-03-14

根据您的代码,我不知道您需要什么,但X509名称空间/代码位于bcgit/bc csharp-X509,并且有一个实用程序类用于在<code>System.Security之间进行转换。加密和BouncyCastlebcgit/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);

问候语

 类似资料:
  • 我需要用Java中的Bouncy Castle创建一个自签名X509证书,但我尝试包含的每个类都不推荐使用。我该怎么解决这个问题?还有其他课程吗?谢谢

  • 我的项目正在对来自某些第三方软件的某些数据集进行签名验证。使用的签名算法是 。当我使用SDK附带的标准SUN加密提供程序时,一切都很顺利。最近我切换到了Bouncy Castle 1.50,之后,一些以前(即SUN提供者)进行验证的数据集开始失败,而其余的仍然被验证正常。 我探索了两个提供程序的源代码,结果发现SDK的默认提供程序对格式错误的签名有某种保护(同时能够恢复),而Bouncy Cast

  • 我在玩加密。我被困在用BouncyCastle加载密钥上。密钥是由PuTTYgen(SSH-2 RSA 4096位)生成的。也许有其他方法可以加载它吗? 我得到: “System.IO”类型的未处理异常。BouncyCastle.Crypto中出现“IOException”。dll<br>其他信息:意外的内容结束标记“” 已添加:我使用“ssh-keygen -t rsa -b 4096”生成了一

  • 有人能解释一下为什么这段代码在解密密钥时会在最后一行抛出吗? 以下是来自https://stackoverflow.com/a/27886397/66722对于使用OAEP的RSA也是如此? “RSA/ECB/PKCS1Padding”实际上没有实现ECB模式加密。它应该被称为“RSA/None/PKCS1Padding”,因为它只能用于加密单个明文块(或者实际上是一个密钥)。这只是Sun/Ora

  • 我正在尝试使用.NET(CNG提供商)的现有ECDSA密钥,以便使用Bouncy Castle对数据进行签名,然后在两种签名格式(P1363和ASN.1)之间进行转换。然而,我总是得到不同的签名。我不太确定转换是否不正确,或者我是否使用了不正确的方法来使用Bouncy Castle读取.NET密钥。 由于某些原因,和已经不同,我假设问题甚至可能在转换之前就出现了。我已经看过许多StackOverf

  • 问题内容: 我正在寻找一个Java库或代码来即时生成证书,公共和私有密钥,而无需使用第三方程序(例如openssl)。 我认为是从Java代码中获取keytool + openssl的东西。 考虑使用ssl和客户端身份验证保护的基于Java servlet的Web应用程序。我希望Servlet容器仅在请求时使用Java代码生成客户端证书(例如pkcs12格式)。 问题答案: 您可以使用一对或密钥在