Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 

Функции OpenSSL

Введение

Этот модуль использует функции OpenSSL для генерации и проверки подписи и отпечатков (шифровки) и открытия (дешифровки) данных. PHP-4.0.4pl1 требует OpenSSL >= 0.9.6, но PHP-4.0.5 и выше также будет работать и с OpenSSL >= 0.9.5.

Примечание: Пожалуйста, запомните, что это расширение всё ещё является экспериментальным!

OpenSSL предлагает много возможностей, которые в данный момент не поддерживаются этим модулем. Некоторые могут быть добавлены в будущем.

Параметры Key/Certificate

Немногие из этих openssl-функций требуют параметра key или certificate. PHP 4.0.5 и ранее должен использовать ресурсы key или certificate, возвращённые одной из функций openssl_get_xxx. Последующие версии могут использовать один из следующих методов:

  • Сертификаты

    1. Ресурс X.509, возвращаемый из openssl_x509_read

    2. Строка, имеющая форматfile://path/to/cert.pem; именованный файл обязан содержать PEM-кодированный сертификат

    3. Строка, с содержимым сертификата, PEM-кодированная

  • Public/Private Ключи

    1. Ресурс ключа, возвращаемый из openssl_get_publickey() или openssl_get_privatekey()

    2. Только для public-ключей: X.509-ресурс

    3. Строка, имеющая формат file://path/to/file.pem - именованный файл обязан содержать PEM-кодированный certificate/private key (может содержать оба)

    4. Строка, содержащая certificate/key, PEM-кодированная

    5. Для private keys вы можете также использовать синтаксисarray($key, $passphrase), где $key представляет ключ, специфицированный с использованием file:// , или текстуальную нотацию содержимого, а $passphrase представляет строку, содержащую passphrase для этого private key

Проверка сертификата

При вызове функции, которая будет проверять подпись/сертификат, параметр cainfo является массивом, содержащим имена файла и директории, специфицирующих размещение доверенных CA-файлов. Если директория специфицирована, то это должна быть правильно сформированная хэшированная директория, которая будет использоваться командой openssl.

PKCS7 Флаги/Константы

Функции 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_free -- освобождает private key
openssl_pkey_get_private - получает private key
openssl_pkey_get_public - извлекает public key из сертификата и подготавливает его к использованию
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-сертификат и возвращает идентификатор ресурса для него
 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS