Новые книги

Windows Server 2012 R2 Pocket Consultant: Storage, Security, & Networking is designed to be a concise and compulsively usable resource for Windows administrators, developers, and programmers, and for anyone else who wants to use the storage, networking, and security features of Windows Server 2012 R2. This is the readable resource guide that you’ll want on your desk or in your pocket at all times. The book discusses everything you need to perform core tasks. Because the focus is directed on providing you with the maximum value in a pocket-sized guide, you don’t have to wade through hundreds of pages of extraneous information to find what you’re looking for. Instead, you’ll find exactly what you need to get the job done.
«Большая книга директора магазина» – бестселлер среди изданий для розницы; система знаний в области современных розничных технологий; необходимая в работе книга для каждого владельца или руководителя розничного магазина.

Прочитав книгу, вы узнаете:

– как открыть магазин, какие средства рекламы и стимулирования продаж выбрать, на какие целевые группы покупателей ориентироваться;

– какие бывают подходы к управлению ассортиментом и ценообразованием, какие финансовые показатели следует учитывать при оценке эффективности работы магазина;

– что такое мерчандайзинг, каковы основные правила мерчандайзинга для розничного магазина;

– как подбирать, обучать, стимулировать и оценивать торговый персонал магазина;

– как провести тренинг продажи и обслуживания покупателей.

Функции OpenSSL

Учебник РНР
Назад Вперёд

LXXI. Функции 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_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-сертификат и возвращает идентификатор ресурса для него

Назад Оглавление Вперёд
OCIWriteLobToFile Вверхopenssl_csr_export_to_file