Функции S/MIME используют флаги, которые определяются как набор битов, который может включать одну или несколько следующих констант:
Константа | Описание |
---|---|
PKCS7_TEXT |
Добавляет заголовок содержимого text/plain в зашифрованное или подписанное сообщение. При расшифровке или проверке заголовки будут получены при выводе. Если после расшифровки или проверки полученное сообщение не имеет MIME-тип text/plain, произойдет ошибка. |
PKCS7_BINARY |
Обычно входящее сообщение приводится к "каноничному" формату, что эффективно при использовании CR и LF в конце строки: это требуется сертификацией S/MIME. Когда данная опция указана, проблем с трансляцией символов конца строки не происходит. Это удобно в случае обработки бинарных данных, которые могут быть не в формате MIME. |
PKCS7_NOINTERN |
При проверке сообщения, сертификаты (если таковые имеются),
включенные в сообщения как правило проверяются на наличие подписи.
С данной опцией используются только сертификаты, определенные в параметре
extracerts функции openssl_pkcs7_verify().
Все прочие сертификаты остаются неподтвержденными центром сертификации.
|
PKCS7_NOVERIFY |
Не проверять подписантов сертификата подписанного сообщения. |
PKCS7_NOCHAIN |
Не проверять подписантов сертификата по цепочке: то есть не использовать сертификаты в подписанном сообщении как неавторизованные центром сертификации. |
PKCS7_NOCERTS |
При подписании сообщения, сертификат подписанта как правило включается
в сообщение - с данной опцией сертификат не добавляется. Это позволяет снизить
размер подписанного сообщения, но проверяющий должен иметь копию сертификата подписанта,
доступную локально (это не требуется при использовании параметра
extracerts функции
openssl_pkcs7_verify()).
|
PKCS7_NOATTR |
Обычно, когда сообщение подписано, в набор атрибутов также включается время подписания и поддерживаемый симметричный алгоритм. С помощью данной опции такое добавление не происходит. |
PKCS7_DETACHED |
При подписании сообщения, используйте подписание в открытом виде (cleartext signing)
с MIME-типом "multipart/signed". Это выполняется по умолчанию,
если не указывать ничего в flags функции
openssl_pkcs7_sign().
Если выключить эту опцию, сообщение будет подписано с использованием opaque signing,
что более устойчиво к передаче почтой, но не может быть прочитано почтовыми агентами, которые
не поддерживают S/MIME. |
PKCS7_NOSIGS |
Не пытаться проверить подписи у сообщения |