在创建 as/mime 消息时,您在第二部分(第一部分是实际消息)应该提供您签署消息的证书和签名结果,即摘要,您应该如何连接它们?
我不使用任何像充气城堡或类似的图书馆。我正在手动构建消息。你只是应该将它们一个接一个地连接起来,还是在它们之间用一条新线连接起来,或者它是如何完成的?我确实试图看看它在 BC 是如何完成的,并且在没有任何明确答案的情况下进行了一些谷歌搜索。
在创建 as/mime 消息时,您在第二部分(第一部分是实际消息)应该提供您签署消息的证书和签名结果,即摘要,您应该如何连接它们?
我不使用任何像充气城堡或类似的图书馆。我正在手动构建消息。你只是应该将它们一个接一个地连接起来,还是在它们之间用一条新线连接起来,或者它是如何完成的?我确实试图看看它在 BC 是如何完成的,并且在没有任何明确答案的情况下进行了一些谷歌搜索。
S/MIME 格式基于 CMS 规范(加密消息语法),该规范标准化数据结构以承载加密、认证或签名的数据。S/MIME(和 CMS)对这些数据结构使用 ASN.1 表示法。
在 S/MIME 签名邮件中,邮件数字签名和签名证书都封装在电子邮件 MIME 多部分的第二部分中。可以手动构建消息多部分,但 S/MIME 签名是二进制格式,需要计算专用库。
一些技术细节:
ContentInfo
包含一个SignedData
结构SignedData
一个SignerInfo
(大多数时候只有一个,因为电子邮件是由单个发件人签名的)。ASignerInfo
包含消息数字签名、签名算法和签名者证书唯一标识符(例如证书颁发者和序列号)SignedData
(这是可选的,因为证书是公共对象,它们可以从存储库中下载,或者收件人可能已经将签名证书链存储在她的邮件应用程序中)