繁体   English   中英

没有ASN.1编码的C#RSA签名

[英]C# RSA signing without ASN.1 encoding

首先,我需要复制echo -n "someUnhashedData" | openssl pkeyutl -sign -inkey rsa.key | base64 -w 0 echo -n "someUnhashedData" | openssl pkeyutl -sign -inkey rsa.key | base64 -w 0 C#代码中的echo -n "someUnhashedData" | openssl pkeyutl -sign -inkey rsa.key | base64 -w 0功能。 我设法将私钥加载到System.Security.Cryptography.RSACryptoServiceProvider并调用SignData ,但是我得到的结果与openssl pkeyutl的结果不同。

据我明白,每此篇这个RFCpkeyutl -sign被不带-pkeyopt digest:hashFunc OpenSSL的不捆绑与消化功能标识符数据,并跳过ASN.1编码。 这意味着原始数据将被填充和加密。 该工具似乎可以确认解密后的签名看起来像是填充的纯文本数据。

那么如何使用C#做到这一点呢? RSACryptoServiceProvider所有功能都要求在加密之前指定哈希算法并编码签名。 我是否缺少某些东西,还是必须编写自己的RSA私有加密?

.NET没有执行“原始RSA”的收件箱API。 如果您需要与其他RSA使用者中的现有错误相匹配的功能,则必须创建一个新类,将P / Invokes到系统密码库中(或以其他方式提供您想要的功能)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM