c# - 如何创建 x-pkcs7-signature s/mime 消息?

标签 c# pkcs#7 smime

我正在尝试在 C# 中创建 x-pkcs7-signature s/mime 消息。我一直在试验 Mimekit,但只能制作 pkcs7 消息。

有人知道我需要做什么来创建 x-pkcs 消息或给我一些例子吗?

问候

最佳答案

有两种不同的方法可以使用 S/MIME 对消息进行签名:

  1. 应用程序/[x-]pkcs7-mime; smime-type=签名数据
  2. application/[x-]pkcs7-signature

要以第一种方式签名,请执行以下操作:

var signer = new MailboxAddress ("", "signer@example.com");
var signed = ApplicationPkcs7Mime.Sign (signer, DigestAlgorithm.Sha256, entity);

另一种方式是这样的:

using (var ctx = new WindowsSecureMimeContext ()) {
    var signer = new MailboxAddress ("", "signer@example.com");
    var signed = MultipartSigned.Sign (ctx, signer, DigestAlgorithm.Sha256, entity);
}

在这两种情况下,您还可以使用 MimeKit.Cryptography.CmsSigner 而不是 MailboxAddress。如果您知道证书的指纹,也可以使用 SecureMailboxAddress

关于c# - 如何创建 x-pkcs7-signature s/mime 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47884782/

相关文章:

c# - ASP.NET MVC/Azure 平台上 cron 作业类型任务的最佳实践?

.net - 如何根据 X509Certificate2Collection 链验证 X509Certificate2

cryptography - bouncycaSTLe 中的 PKCS #7 SignedData 问题

c# - .NET 4.5 超过 4.0 时大量增加了新的 TCP 连接数?

c# - 显示 DataTable 的值

c# - 分离 POCO 类后尝试从数据库更新 EDMX 时出现 COMException

java - 使用 PKCS 7 加密技术

c - 在 AES 密码对象上禁用 PKCS#7 填充?

email - S/MIME 中的多个签名

c# - EWS : Retrieving attachments from signed emails