
Снимок исходного кода OpenSSL 1.0.1g, предоставляющий библиотеку SSL/TLS и криптографии общего назначения с шифрами, дайджестами и обработкой сертификатов X.509.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 Проект OpenSSL 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.
Нет ограничения на количество бит.
Обмен ключами/генерация ключей Диффи-Хеллмана.
Нет ограничения на количество бит.
Сертификаты X.509v3
Кодирование/декодирование X.509 в/из двоичного ASN1 и основанное на PEM
ASCII-бинарное кодирование, поддерживающее шифрование с помощью
закрытого ключа. Программа для генерации запросов сертификатов RSA и DSA
и для генерации сертификатов RSA и DSA.
Системы
Обычные процедуры цифрового конверта и кодирование base64. Доступ
более высокого уровня к шифрам и дайджестам по имени. Новые шифры могут
загружаться во время выполнения. Система ввода-вывода BIO, которая является простой неблокирующей
абстракцией ввода-вывода. Поддерживаемые методы: файловые дескрипторы,
сокеты, прием сокетов, подключение сокетов, буфер памяти, буферизация, SSL
клиент/сервер, файловый указатель, шифрование, дайджест, тестирование неблокирующего режима
и ноль.
Структуры данных
Динамически расширяемая хэш-система
Простой стек.
Загрузчик конфигурации, использующий формат, подобный 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]" в теме. Пожалуйста, обязательно включите текстовое объяснение того, что делает ваш патч.