我们有一个使用赛门铁克PGP Universal Web Messenger的系统。
这意味着通过pkcs12证书使用s / mime加密将电子邮件发送给我。
我在阅读PHP中的消息时遇到了一些麻烦。
我有所有的imap代码,但现在我如何读取加密的p7m附加文件。它只是Base64编码和签名?
编辑:我有公钥。这是mime信息: -
Content-Type: application/pkcs7-mime; smime-type=enveloped-data;\r\n\tname="Message.p7m"\r\nContent-Transfer-Encoding: BASE64\r\nContent-Disposition: attachment; filename="Message.p7m"
答案 0 :(得分:1)
P7M文件类型主要与PKCS #7 MIME Message
相关联。见Section 3.2 in RFC 2311:
3.2 The application/pkcs7-mime Type The application/pkcs7-mime type is used to carry PKCS #7 objects of several types including envelopedData and signedData. The details of constructing these entities is described in subsequent sections. This section describes the general characteristics of the application/pkcs7-mime type. This MIME type always carries a single PKCS #7 object. The PKCS #7 object must always be BER encoding of the ASN.1 syntax describing the object. The contentInfo field of the carried PKCS #7 object always contains a MIME entity that is prepared as described in section 3.1. The contentInfo field must never be empty. Since PKCS #7 objects are binary data, in most cases base-64 transfer encoding is appropriate, in particular when used with SMTP transport. The transfer encoding used depends on the transport through which the object is to be sent, and is not a characteristic of the MIME type. Note that this discussion refers to the transfer encoding of the PKCS \#7 object or "outside" MIME entity. It is completely distinct from, and unrelated to, the transfer encoding of the MIME entity secured by the PKCS #7 object, the "inside" object, which is described in section 3.1. Because there are several types of application/pkcs7-mime objects, a sending agent SHOULD do as much as possible to help a receiving agent know about the contents of the object without forcing the receiving agent to decode the ASN.1 for the object. The MIME headers of all application/pkcs7-mime objects SHOULD include the optional "smime- type" parameter, as described in the following sections.
这基本上是以加密形式发送的安全电子邮件文件。如果一切设置正确,您应该有一个解密文件所需的公钥。如果没有,请下载它。
在您的情况下,传输编码是Base64。首先解码附件(如果到目前为止还没有这样做),然后处理二进制数据。