
Полнофункциональная криптографическая библиотека с поддержкой протоколов 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, разработанной Эриком А. Янгом и Тимом Дж. Хадсоном. Инструментарий OpenSSL распространяется на условиях двойной лицензии (лицензия OpenSSL плюс лицензия SSLeay), что в основном означает, что вы можете свободно получать и использовать его в коммерческих и некоммерческих целях при условии выполнения требований обеих лицензий.
Инструментарий OpenSSL включает:
libssl.a: Реализацию SSLv2, SSLv3, TLSv1 и необходимого кода для поддержки одновременно SSLv2, SSLv3 и TLSv1 в одном сервере и клиенте.
libcrypto.a: Общие компоненты шифрования и X.509 v1/v3, необходимые для SSL/TLS, но не являющиеся логической его частью. Она включает подпрограммы для следующего:
Шифры
libdes - пакет DES-шифрования EAY's libdes, который некоторое время
ходил по сети несколько лет, а затем был перелицензирован
им как часть 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: шифрование/дешифрование/генерация.
Нет ограничения на количество бит.
Диффи-Хеллман: обмен ключами/генерация ключей.
Нет ограничения на количество бит.
Сертификаты 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, пожалуйста, сначала выполните следующие действия:
- Загрузите текущий снимок (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-ключ доступен на серверах ключей).