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

Posted

技术标签:

【中文标题】如何创建 x-pkcs7-signature s/mime 消息?【英文标题】:How to create an x-pkcs7-signature s/mime message? 【发布时间】:2018-06-01 18:13:16 【问题描述】:

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

有谁知道我需要做什么来创建 x-pkcs 消息或指出一些示例?

问候

【问题讨论】:

FWIW、application/x-pkcs7-mimeapplication/x-pkcs7-signature 在 90 年代 S/MIME 成为标准之前使用。官方的 mime 类型现在(并且已经存在了 2 多年)application/pkcs7-mimeapplication/pkcs7-signature 【参考方案1】:

使用 S/MIME 有 2 种不同的方式来签署消息:

    application/[x-]pkcs7-mime; smime-type=signed-data 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

【讨论】:

以上是关于如何创建 x-pkcs7-signature s/mime 消息?的主要内容,如果未能解决你的问题,请参考以下文章

在 s-s-rS 中,如何使用多值参数创建动态“位置”条件

如何使用 VS 2008 BIDS 创建 s-s-rS 2008r2 rdl

Postgresql 如何创建一个有N个列的表

如何使用分组和分页符来创建双面 s-s-rS 徽章报告? (Microsoft SQL Server 2012 报表生成器)

如何在R中的For循环中创建动态变量名称

如何从交易收据重新创建原始交易以验证 v,r,s 签名?