.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
相关产品推荐
相关产品推荐

