
Полнофункциональный набор инструментов с открытым исходным кодом, реализующий протоколы SSL/TLS и библиотеку криптографии общего назначения, включая шифры, дайджесты, алгоритмы с открытым ключом и обработку сертификатов X.509.
OpenSSL 1.0.1g 7 апреля 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Все права защищены.
Проект OpenSSL — это совместная работа по созданию надежного, готового к промышленному использованию, полнофункционального набора инструментов с открытым исходным кодом, реализующего протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1), а также полную криптографическую библиотеку общего назначения. Проект управляется мировым сообществом добровольцев, которые используют Интернет для общения, планирования и разработки набора инструментов OpenSSL и связанной с ним документации.
OpenSSL основан на превосходной библиотеке SSLeay, разработанной Эриком А. Янгом и Тимом Дж. Хадсоном. Набор инструментов OpenSSL распространяется по двойной лицензии (лицензия OpenSSL плюс лицензия SSLeay), что по сути означает, что вы можете свободно получать и использовать его в коммерческих и некоммерческих целях, при условии соблюдения условий обеих лицензий.
Набор инструментов OpenSSL включает:
libssl.a: Реализация SSLv2, SSLv3, TLSv1 и необходимого кода для поддержки SSLv2, SSLv3 и TLSv1 одновременно на одном сервере и клиенте.
libcrypto.a: Общие процедуры шифрования и работы с X.509 v1/v3, необходимые для SSL/TLS, но не являющиеся их логической частью. Включает следующие подпрограммы:
Шифры
libdes - пакет шифрования DES от 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 — простая неблокирующая
абстракция ввода-вывода. Поддерживаются следующие методы: файловые дескрипторы,
сокеты, accept сокетов, connect сокетов, буфер памяти, буферизация, 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, сначала выполните следующие шаги:
- Загрузите текущую версию с ftp://ftp.openssl.org/snapshot/
чтобы проверить, не была ли проблема уже решена
- Удалите ASM-версии библиотек
- Удалите флаги оптимизации компилятора
Если вы хотите сообщить об ошибке, пожалуйста, включите следующую информацию в любое сообщение об ошибке:
- В системах Unix:
Отчет самопроверки, сгенерированный командой 'make report'
- В других системах:
Версия OpenSSL: вывод команды 'openssl version -a'
Название ОС, версия, аппаратная платформа
Детали компилятора (название, версия)
- Детали приложения (название, версия)
- Описание проблемы (шаги для воспроизведения, если известны)
- Трассировка стека (если приложение создает дамп ядра)
Сообщите об ошибке в проект OpenSSL через систему отслеживания запросов (http://www.openssl.org/support/rt.html) по электронной почте:
[email protected]
Обратите внимание, что система отслеживания запросов НЕ должна использоваться для общих вопросов или запросов поддержки. То, что что-то работает не так, как вы ожидаете, не обязательно означает, что это ошибка в OpenSSL.
Обратите внимание, что почта, отправленная на [email protected], записывается в общедоступную базу данных системы отслеживания запросов и пересылается в открытый список рассылки. Конфиденциальная почта может быть отправлена на [email protected] (ключ PGP доступен на серверах ключей).
Разработка координируется через список рассылки openssl-dev (см. http://www.openssl.org для информации о подписке). Если вы хотите отправить патч, отправьте его на [email protected] с строкой "[PATCH]" в теме. Пожалуйста, обязательно включите текстовое объяснение того, что делает ваш патч.