我正在尝试将以下代码(使用.NET的内置加密库)转换为BouncyCastle。不幸的是,在缺乏文档,对所有Java BC问题的困惑以及使用分离签名的不寻常之间,我不知道该怎么做。
。NET代码:signature
是以Base64编码存储在p7s
文件中的独立SHA256 RSA签名。
var data = Encoding.ASCII.GetBytes("Hi!"); var signature = File.ReadAllText("Signature.p7s"); byte[] hashedDocument = HashAlgorithm.Create("SHA256").ComputeHash(data); var cms = new SignedCms(new ContentInfo(hashedDocument), true); cms.Decode(Convert.FromBase64String(signature)); cms.CheckSignature(true);
[我已经尝试过BouncyCastle的
RsaDigestSigner
,CmsSignedData
,CmsSignedDataParser
和SignerUtilities.GetSigner("SHA-256withRSA")
(它们只是返回RsaDigestSigner
),但是它们似乎都没有办法同时理解p7s文件和实际验证它是否适用于指定的数据。
我正在尝试将以下代码(使用.NET的内置加密库)转换为BouncyCastle。不幸的是,在缺乏文档的情况下,与所有Java BC ...
因此,考虑到您尚未提供如何生成分离的签名的示例,我不得不作一些假设。