Функции 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 для шифрования сообщения. |