首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成签名的PKCS#7,而不访问PK

生成签名的PKCS#7,而不访问PK
EN

Stack Overflow用户
提问于 2018-06-05 10:46:08
回答 2查看 253关注 0票数 1

我有一张智能卡,它存储我的私钥并执行有限的加密操作,我需要生成一个PKCS#7签名文件。智能卡附带的库不支持PKCS#7,但我可以使用它生成签名。

考虑到明文有效负载、证书和签名(不是私钥),我是否可以使用成熟的开放源代码库(如openssl )来构建内容?

我知道我可以调用openssl中的各种函数一次执行所有操作(包括签名),但这需要访问私钥,而我的代码无法提取私钥。

EN

回答 2

Stack Overflow用户

发布于 2022-11-27 16:41:00

是的,System.Security.Cryptography.Pkcs包提供了一个抽象,允许在硬件设备上计算签名。

代码语言:javascript
复制
 public byte[] Sign(byte[] data, X509Certificate2 cert)
 {
     ContentInfo contentInfo = new ContentInfo(_sha256.ComputeHash(data));
     SignedCms signedCms = new SignedCms(contentInfo);
     CmsSigner cmsSigner = new CmsSigner(cert);
     cmsSigner.IncludeOption = X509IncludeOption.WholeChain;
     signedCms.ComputeSignature(cmsSigner);
     return signedCms.Encode();
 }

https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.pkcs.pkcs9messagedigest?view=dotnet-plat-ext-7.0

票数 0
EN

Stack Overflow用户

发布于 2018-06-06 11:42:53

您可以通过创建一个OpenSSL引擎来完成此任务,该引擎将在需要私钥操作时与卡进行通信。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50698179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档