2011-04-13 72 views
1

当你在第二部分(第一部分是实际消息)中创建as/mime消息时,应该提供你签署了该消息的证书,以及签名的结果,即摘要,你应该如何连接它们?pkcs7-签名消息

我不使用像充气城堡或类似的任何图书馆。我正在手动构建消息。你是不是应该把它们连在一起,或者在它们之间有一条新的线,或者它们是如何完成的?我确实试图看看它是如何在BC完成的,还有一些Google没有任何明确的答案。

回答

0

S/MIME格式基于CMS规范(加密消息语法),该规范将数据结构标准化为承载加密,认证或签名的数据。 S/MIME(和CMS)为这些数据结构使用ASN.1表示法。

在S/MIME签名的消息中,消息数字签名和签名证书都封装在电子邮件MIME multipart的第二部分中。可以手动构建消息多部分,但是S/MIME签名是需要计算专用库的二进制格式。

一些技术细节:

  • 的S/MIME ASN.1模块的最后一个版本是在RFC 5911
  • 描述的消息签名含有SignedData结构ContentInfo
  • SignedData含有SignerInfo(大部分时间只有一个,因为电子邮件由一个发件人签名)。甲SignerInfo包含消息的数字签名,签名算法和签名人证书的唯一标识符(例如证书发行者&序列号)
  • 证书可以在SignedData被添加(这是optinal因为证书是公共对象,它们可以从存储库下载或者收件人可能已经将签名证书链存储在她的邮件应用程序中)