C#向PKCS#7 CMS数字签名问题添加时间戳

C# Add Timestamp to PKCS#7 CMS Digital Signature problem(C#向PKCS#7 CMS数字签名问题添加时间戳)
本文介绍了C#向PKCS#7 CMS数字签名问题添加时间戳的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题是that one的续篇。我还尝试与第三方AS2服务器通信。我使用的代码与该帖子的作者相同。此代码(更正后的版本)为:

private byte[] Sign(byte[] content)
{
    CmsSigner cmsSigner = new CmsSigner(_cert);
    cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));

    SignedCms signedCms = new SignedCms(new ContentInfo(content));
    signedCms.ComputeSignature(cmsSigner, true);

    return signedCms.Encode();
}

但我从服务器收到以下错误:

无法验证内容完整性:中的消息摘要不匹配 签名。

尽管signedCms.CheckSignature(false);未引发异常。

我应该在哪里搜索此错误的原因?

推荐答案

您可以将项目类型更改为.Net 5 通过使用项目属性(右键单击项目-&>属性)-&>应用程序并将目标框架从.Net Core 3.0更改为.Net 5.0,我希望它对任何人都有帮助

这篇关于C#向PKCS#7 CMS数字签名问题添加时间戳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)