Функции для работы с CMS-сообщениями принимают флаги, которые определяют как битовое поле. Поле битов включает одно или набор следующих значений:
Константа | Описание |
---|---|
OPENSSL_CMS_TEXT
(int)
|
Добавляет заголовки content-type text/plain в зашифрованное/подписанное сообщение. При расшифровке или проверке эти заголовки удаляются из вывода — если расшифрованное или проверенное сообщение не относится к MIME-типу text/plain, произойдёт ошибка. |
OPENSSL_CMS_BINARY
(int)
|
Обычно входное сообщение преобразовывается в «каноничный» формат, который
эффективно использует символы CR и LF
в качестве конца строки: как требует спецификация CMS. Когда
присутствует эта опция, перевод не выполняется. Это полезно при обработке
двоичных данных, которые могут быть не в формате CMS.
|
OPENSSL_CMS_NOINTERN
(int)
|
При проверке сообщения сертификаты (если есть), включённые в сообщение,
обычно проверяются на наличие сертификата подписи. С этой опцией используются
только сертификаты, указанные в параметре untrusted_certificates_filename
функции openssl_cms_verify().
Однако предоставленные сертификаты можно использовать как ненадёжные центры сертификации.
|
OPENSSL_CMS_NOVERIFY
(int)
|
Не проверять сертификат подписавшего у подписанного сообщения. |
OPENSSL_CMS_NOCERTS
(int)
|
При подписании сообщения сертификат подписывающей стороны обычно
включается — с этой опцией он исключается. Это уменьшит размер
подписанного сообщения, но у проверяющего должна быть копия сертификата
подписавшего, доступная локально (например, переданная в параметр untrusted_certificates_filename
функции openssl_cms_verify()).
|
OPENSSL_CMS_NOATTR
(int)
|
Обычно при подписании сообщения включается набор атрибутов, который включает время подписи и поддерживаемые симметричные алгоритмы. С этой опцией они не включены. |
OPENSSL_CMS_DETACHED
(int)
|
При подписании сообщения используйте подпись открытым текстом с MIME-типом
"multipart/signed" . Это значение по умолчанию,
если вы не укажете никаких flags для
openssl_cms_sign().
Если вы отключите эту опцию, сообщение будет подписано с использованием
непрозрачной подписи, которая более устойчива к переводу почтовыми
ретрансляторами, но не может быть прочитана почтовыми агентами,
не поддерживающими S/MIME.
|
OPENSSL_CMS_NOSIGS
(int)
|
Не пытаться проверять подписи в сообщении |
OPENSSL_CMS_OLDMIMETYPE
(int)
|
Доступно начиная с PHP 8.3.0.
Устанавливает тип содержимого application/x-pkcs7-mime
вместо application/pkcs7-mime для шифрования сообщения.
|