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