
Универсальная криптографическая библиотека и инструментарий SSL/TLS, обеспечивающие шифрование, дешифрование, управление сертификатами X.509 и защищённые протоколы связи.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved.
Проект OpenSSL — это совместная работа, направленная на разработку надёжного, коммерческого уровня, полнофункционального инструментария с открытым исходным кодом, реализующего протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1), а также полноценную криптографическую библиотеку общего назначения. Проект управляется всемирным сообществом добровольцев, которые используют Интернет для общения, планирования и разработки инструментария OpenSSL и связанной с ним документации.
OpenSSL основан на отличной библиотеке SSLeay, разработанной Эриком А. Янгом (Eric A. Young) и Тимом Дж. Хадсоном (Tim J. Hudson). Инструментарий OpenSSL распространяется на условиях двойной лицензии (лицензия OpenSSL плюс лицензия SSLeay), что по сути означает, что вы можете свободно получать и использовать его в коммерческих и некоммерческих целях при условии выполнения требований обеих лицензий.
Инструментарий OpenSSL включает:
libssl.a: Реализация SSLv2, SSLv3, TLSv1 и необходимый код для поддержки как SSLv2, SSLv3, так и TLSv1 в одном сервере и клиенте.
libcrypto.a: Общие функции шифрования и материалы X.509 v1/v3, необходимые для SSL/TLS, но логически не являющиеся его частью. Включает процедуры для следующего:
Шифры
libdes — пакет шифрования DES libdes от EAY, который несколько лет
ходил по сети, а затем был перелицензирован им как часть SSLeay.
Он включает 15 «режимов/вариантов» DES (версии с 1, 2 и 3 ключами
для ecb, cbc, cfb и ofb; pcbc и более общую форму cfb и ofb),
включая desx в режиме cbc, быстрый crypt(3) и процедуры
для чтения паролей с клавиатуры.
Шифрование RC4,
Шифрование RC2 — 4 различных режима: ecb, cbc, cfb и ofb.
Шифрование Blowfish — 4 различных режима: ecb, cbc, cfb и ofb.
Шифрование IDEA — 4 различных режима: ecb, cbc, cfb и ofb.
Дайджесты
Алгоритмы дайджеста сообщений MD5 и MD2, быстрые реализации,
алгоритмы дайджеста сообщений SHA (SHA-0) и SHA-1,
дайджест сообщений MDC2. Хэш на основе DES, популярный на смарт-картах.
Открытый ключ
Шифрование/дешифрование/генерация RSA.
Нет ограничения на количество бит.
Шифрование/дешифрование/генерация DSA.
Нет ограничения на количество бит.
Обмен ключами/генерация ключей Diffie-Hellman.
Нет ограничения на количество бит.
Сертификаты X.509v3
Кодирование/декодирование X509 в/из двоичного ASN1 и основанное на PEM
ASCII-двоичное кодирование, поддерживающее шифрование с помощью
закрытого ключа. Программа для генерации запросов на сертификаты RSA и DSA
и для генерации сертификатов RSA и DSA.
Системы
Обычные процедуры цифрового конверта и кодирование base64. Доступ
к шифрам и дайджестам более высокого уровня по имени. Новые шифры можно
загружать во время выполнения. Система ввода-вывода BIO, представляющая собой
простую абстракцию неблокирующего ввода-вывода. Поддерживаемые в настоящее время
методы: файловые дескрипторы, сокеты, прием сокетов, подключение сокетов,
буфер памяти, буферизация, SSL клиент/сервер, указатель на файл, шифрование,
дайджест, тестирование неблокирующего режима и null.
Структуры данных
Динамически расширяемая хэш-система
Простой стек.
Загрузчик конфигурации, использующий формат, похожий на файлы MS .ini.
openssl: Инструмент командной строки, который можно использовать для: Создания параметров ключей RSA, DH и DSA Создания сертификатов X.509, CSR и CRL Вычисления дайджестов сообщений Шифрования и дешифрования с помощью шифров Тестирования SSL/TLS клиента и сервера Обработки подписанной или зашифрованной почты S/MIME
Различные компании владеют различными патентами на различные алгоритмы в различных местах по всему миру. ВЫ несёте ответственность за то, чтобы ваше использование любых алгоритмов было законным, проверив, есть ли какие-либо патенты в вашей стране. Файл содержит некоторые патенты, о которых мы знаем или которые, как предполагается, существуют. Это не исчерпывающий список.
RSA Security владеет патентами на программное обеспечение для алгоритма RC5. Если вы намерены использовать этот шифр, вы должны связаться с RSA Security для получения условий лицензирования. Их веб-страница: http://www.rsasecurity.com/.
RC4 является товарным знаком RSA Security, поэтому этот ярлык, вероятно, следует использовать только с разрешения RSA Security.
Алгоритм IDEA запатентован компанией Ascom в Австрии, Франции, Германии, Италии, Японии, Нидерландах, Испании, Швеции, Швейцарии, Великобритании и США. С ними следует связаться, если этот алгоритм должен использоваться; их веб-страница: http://www.ascom.ch/.
Компании NTT и Mitsubishi имеют патенты и находящиеся на рассмотрении патенты на алгоритм Camellia, но разрешают использование бесплатно без необходимости заключения явного лицензионного соглашения: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Чтобы установить этот пакет в производной Unix-системе, прочтите файл INSTALL. Для платформы Win32 прочтите файл INSTALL.W32. Для систем OpenVMS прочтите INSTALL.VMS.
Прочтите документацию в каталоге doc/. Она довольно сырая, но в ней перечислены функции; вам, вероятно, придётся посмотреть на код, чтобы разобраться, как их использовать. Посмотрите примеры программ.
Для некоторых платформ существуют известные проблемы, которые могут затронуть пользователя или автора приложений. Мы пытаемся собирать их в doc/PROBLEMS, а также текущие соображения о том, как их следует решать в будущих версиях OpenSSL.
Смотрите информацию о том, как получить коммерческую техническую поддержку, на веб-сайте OpenSSL www.openssl.org.
Если у вас возникли проблемы с OpenSSL, сначала выполните следующие действия:
- Загрузите текущий снимок (snapshot) с ftp://ftp.openssl.org/snapshot/,
чтобы проверить, не была ли проблема уже решена
- Удалите ASM-версии библиотек
- Удалите флаги оптимизации компилятора
Если вы хотите сообщить об ошибке, включите следующую информацию в любой отчёт об ошибке:
- В системах Unix:
Отчёт о самопроверке, созданный командой 'make report'
- В других системах:
Версия OpenSSL: вывод 'openssl version -a'
Название ОС, версия, аппаратная платформа
Сведения о компиляторе (название, версия)
- Сведения о приложении (название, версия)
- Описание проблемы (шаги, воспроизводящие проблему, если известны)
- Трассировка стека (если приложение создаёт дамп ядра)
Сообщите об ошибке в проект OpenSSL через Request Tracker (http://www.openssl.org/support/rt.html) по электронной почте:
[email protected]
Обратите внимание, что Request Tracker не следует использовать для общих вопросов или запросов поддержки. То, что что-то работает не так, как вы ожидаете, не обязательно означает, что это ошибка в OpenSSL.
Обратите внимание, что почта на [email protected] записывается в публично доступную базу данных Request Tracker и пересылается в публичный список рассылки. Конфиденциальная почта может быть отправлена на [email protected] (PGP-ключ доступен на серверах ключей).