gpt4 book ai didi

c# - 如何从 PKCS#7 中提取 PKCS#1 签名

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:17 30 4
gpt4 key购买 nike

我知道 PKCS#7 = 证书 + 可选原始数据 + PKCS#1 格式的签名 我需要从 PKCS#7 签名中提取 PKCS#1 如何在 C# 中执行此操作。我可以用充气城堡来做这个吗,这是我的实现IE。将 PKCS#7 转换为 ASN.1 并采用最后一个序列,因为它是 PKCS#1

Asn1InputStream asn1 = new Asn1InputStream(pkcs7Stream);
Asn1Sequence sequence = (Asn1Sequence)asn1.ReadObject().ToAsn1Object();
var sequenceString = sequence.ToString();
var lastCommaIndex = sequenceString.LastIndexOf(",");
var pkcs1HexStr = sequenceString.Substring(lastCommaIndex + 3).Replace("]", string.Empty);

有没有其他合适的方式获取PKCS#1

最佳答案

SignedCms 类可以为您执行此操作,.NET Core 2.1+ 或 .NET Framework 4.7.2+:

SignedCms cms = new SignedCms();
cms.Decode(message);
return cms.SignerInfos[0].GetSignature();

当然,假设您想要第一个签名者的签名。 (GetSignature方法是需要net472+的)

其他签名者或副签名者也可以使用,只是通过对象模型的不同方面。

关于c# - 如何从 PKCS#7 中提取 PKCS#1 签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370663/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com