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