PHP Чтение вложения электронной почты S / Mime p7m (Base64?) - PullRequest
1 голос
/ 23 февраля 2012

У нас есть система, использующая Symantec PGP Universal Web Messenger.

Это означает, что электронные письма отправляются мне с использованием s / mime-шифрования из сертификата pkcs12.

У меня проблемы с чтением сообщений в PHP.

У меня есть весь код imap, но теперь как мне прочитать зашифрованный прикрепленный файл p7m. Это просто Base64 закодировано и подписано?

РЕДАКТИРОВАТЬ: У меня есть открытый ключ.

Вот информация о пантомиме: -

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"

1 Ответ

1 голос
/ 23 февраля 2012

Тип файла P7M в основном связан с PKCS #7 MIME Message.См. Раздел 3.2 в 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.Сначала расшифруйте вложение (если вы этого еще не сделали), а затем обработайте двоичные данные.

...