You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 9/BouncyCastle 2.6.0实现OpenSSL RSA签名问题求助

问题:使用BouncyCastle 2.6.0或纯.NET实现OpenSSL RSA签名功能

我需要实现以下OpenSSL命令的功能:

openssl rsautl -sign -in rasi.bin -inkey riktest.key -out allkiri.bin

参考相关.NET6签名转换代码编写测试后,调用GenerateSignature()时抛出异常:

System.ArgumentException: failed to construct sequence from byte[]:
long form definite-length more than 31 bits at
Org.BouncyCastle.Asn1.Asn1Sequence.GetInstance(Object obj) at
Org.BouncyCastle.Asn1.X509.DigestInfo.GetInstance(Object obj) at
Org.BouncyCastle.Crypto.Signers.RsaDigestSigner.CheckDerEncoded(Byte[]
hash) at
Org.BouncyCastle.Crypto.Signers.RsaDigestSigner.GenerateSignature()

这段代码在BouncyCastle 2.5.1中可以正常运行,但在2.6.0版本中出现两个问题:

  • 使用ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");生成的签名,和2.5.1版本中ISigner signer = SignerUtilities.GetSigner("NoneWithRSA");生成的签名不一致
  • 无法生成与上述OpenSSL命令输出一致的签名

请问如何使用.NET 9搭配最新版BouncyCastle 2.6.0实现该功能?或者是否可以用纯.NET方案实现?

内容的提问来源于stack exchange,提问作者Andrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:40:58