|
LXXI. Функции OpenSSL
Предупреждение! |
---|
Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, имена его функций и всё, что задокументировано, может измениться в последующих релизах РНР без предупреждения. Вы предупреждены и можете использовать это расширение только под вашу ответственность.
|
Этот модуль использует функции
OpenSSL для генерации и проверки подписи и пломбирования (шифровки) и открытия (дешифровки)
данных. PHP-4.0.4pl1 требует OpenSSL >= 0.9.6, но PHP-4.0.5 и выше также
будет работать и с OpenSSL >= 0.9.5. Примечание: пожалуйста, помните, что это расширение всё ещё является экспериментальным!
OpenSSL предлагает много возможностей, которые в данный момент не поддерживаются этим модулем.
Некоторые могут быть добавлены в будущем.
Немногие из этих openssl-функций требуют параметра key или certificate. PHP 4.0.5
и ранее должен использовать ресурсы key или certificate, возвращённые одной
из функций openssl_get_xxx. Последующие версии могут использовать один из
следующих методов: Сертификаты Ресурс X.509, возвращаемый из openssl_x509_read
Строка, имеющая форматfile://path/to/cert.pem; именованный файл обязан содержать PEM-кодированный сертификат
Строка, с содержимым сертификата, PEM-кодированная
Public/Private Ключи Ресурс ключа, возвращаемый из
openssl_get_publickey() или
openssl_get_privatekey()
Только для public-ключей: X.509-ресурс Строка, имеющая формат
file://path/to/file.pem - именованный файл обязан содержать PEM-кодированный certificate/private key (может содержать оба)
Строка, содержащая certificate/key, PEM-кодированная
Для private keys вы можете также использовать синтаксис array($key, $passphrase), где $key представляет ключ, специфицированный с использованием file:// , или
текстуальную нотацию содержимого, а $passphrase представляет строку, содержащую passphrase для этого private key
При вызове функции, которая будет проверять подпись/сертификат, параметр
cainfo является массивом, содержащим имена файла и директории, специфицирующих
размещение доверенных CA-файлов. Если директория специфицирована, то это
должна быть правильно сформированная хэшированная директория, которая будет
использоваться командой openssl.
Функции S/MIME используют флаги, специфицированные битовым полем, которое
может содержать одно или более следующих значений:
Таблица 1. PKCS7-константыКонстанта | Описание |
---|
PKCS7_TEXT | добавляет text/plain content type шапки/header'ы в
шифрованное/подписанное сообщение. При дешифровке или проверке эти
шапки вырезаются из вывода - если дешифрованное или проверенное
сообщение не имеет тип type text/plain, возникает ошибка. | PKCS7_BINARY | нормально вводное сообщение конвертируется в "канонический" формат, который
использует CR и LF как символ конца строки: как требует спецификация S/MIME.
Если эти опции имеются, трансляция не происходит. Это можно
использовать при обработке бинарных данных, которые могут не иметь MIME-формат. |
PKCS7_NOINTERN | при проверке сообщения сертификаты (если имеются), включённые в сообщение,
проверяются на наличие подписанного сертификата. С этой опцией
используются только сертификаты, специфицированные в параметре extracerts
функции openssl_pkcs7_verify().
Предоставляемые сертификаты могут по-прежнему использоваться как недоверенные/untrusted CA. |
PKCS7_NOVERIFY | не проверять сертификат подписчика подписанного сообщения. |
PKCS7_NOCHAIN | не связывать проверку сертификатов подписчиков: то есть не использовать
сертификаты в подписанном сообщении как недоверенные/untrusted CA. | PKCS7_NOCERTS |
при подписывании сообщения сертификат подписывающего обычно включается - с
данной опцией он исключается. Это уменьшает размер подписанного
сообщения, но проверяющий обязан иметь локально копию сертификата
подписывающего (передаваемую с использованием extracerts в
openssl_pkcs7_verify(), например. |
PKCS7_NOATTR | нормально, когда сообщение подписывается, включается набор атрибутов, которые
содержат время подписи и поддерживаемые симметричные алгоритмы. С данной опцией они не включаются. |
PKCS7_DETACHED | при подписывании сообщения используйте cleartext-подписывание с MIME-типом multipart/signed.
Это значение по умолчанию, если это параметр flags для
openssl_pkcs7_sign(), если вы не специфицируете никаких флагов. Если вы отключите эту опцию,
сообщение будет подписано с использованием непрозрачной/opaque подписи,
которая более устойчива к почтовой трансляции, но не может читаться
почтовыми агентами, не поддерживающими S/MIME. | PKCS7_NOSIGS | не проверять подписи в сообщении |
Примечание: эти константы были введены в версии 4.0.6.
- Содержание
- openssl_csr_export_to_file - экспортирует CSR в файл или переменную
- openssl_csr_export - экспортирует CSR в файл или переменную
- openssl_csr_new - генерирует privkey и CSR
- openssl_csr_sign - подписывает cert другим CERT
- openssl_error_string - возвращает сообщение об ошибке openSSL
- openssl_free_key - освобождает key-ресурс
- openssl_get_privatekey - подготавливает PEM-форматированный private key для использования
- openssl_get_publickey - извлекает public key из сертификата и подготавливает его для использования
- openssl_open - открывает пломбированные данные
- openssl_pkcs7_decrypt - дешифрует шифрованное S/MIME-сообшение
- openssl_pkcs7_encrypt - шифрует S/MIME-сообщение
- openssl_pkcs7_sign - подписывает S/MIME-сообщение
- openssl_pkcs7_verify - проверяет подпись подписанного S/MIME-сообщения
- openssl_pkey_export_to_file - получает экспортабельное представление ключа в файле
- openssl_pkey_export - получает экспортабельное представление ключа в строке или файле
- openssl_pkey_new - генерирует новый private key
- openssl_private_decrypt - дешифрует данные с private key
- openssl_private_encrypt - шифрует данные с private key
- openssl_public_decrypt - дешифрует данные с public key
- openssl_public_encrypt - шифрует данные с public key
- openssl_seal - пломбирует (шифрует) данные
- openssl_sign - генерирует подпись
- openssl_verify - проверяет подпись
- openssl_x509_check_private_key - проверяет, соответствует ли private сертификату CERT
- openssl_x509_checkpurpose - проверяет, может ли сертификат использоваться для определённых целей
- openssl_x509_export_to_file - экспортирует CERT в файл или переменную
- openssl_x509_export - экспортирует CERT в файл или переменную
- openssl_x509_free - освобождает ресурс сертификата
- openssl_x509_parse - разбирает X509-сертификат и возвращает the информацию как массив
- openssl_x509_read - разбирает X509-сертификат и возвращает идентификатор ресурса для него
| |