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