Прапори/константи PKCS7

Функції S/MIME використовують прапори, які визначаються як набір бітів, який може включати одну або кілька наступних констант:

Константи PKCS7

КонстантаОпис
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 для шифрування повідомлення.