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