
Исходный код OpenSSL 1.0.1g с патчем CVE-2015-1791, предоставляющий криптографическую библиотеку SSL/TLS для защищённой связи.
OpenSSL 1.0.1g 7 Apr 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 (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.
Хэши (Digests)
Алгоритмы дайджестов сообщений 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
клиент/сервер, файловый указатель, шифрование, дайджест, тестирование неблокирующего режима
и нулевой метод.
Структуры данных
Динамически растущая хэш-система
Простой стек.
Загрузчик конфигурации, использующий формат, похожий на 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 через систему запросов (Request Tracker) (http://www.openssl.org/support/rt.html) по почте:
Обратите внимание, что система запросов НЕ должна использоваться для общей помощи или запросов поддержки. То, что что-то работает не так, как вы ожидаете, не обязательно означает, что это ошибка в OpenSSL.
Обратите внимание, что почта на [email protected] записывается в общедоступную базу данных системы запросов и пересылается в открытый список рассылки. Конфиденциальная почта может быть отправлена на [email protected] (ключ PGP доступен на серверах ключей).
Разработка координируется в списке рассылки openssl-dev (см. http://www.openssl.org для получения информации о подписке). Если вы хотите отправить патч, отправьте его на [email protected] с строкой "[PATCH]" в теме. Пожалуйста, обязательно включите текстовое объяснение того, что делает ваш патч.
Если вы не уверены, будет ли функция полезна для сообщества OpenSSL в целом, сначала обсудите её в списке рассылки openssl-dev. Возможно, кто-то уже работает над тем же самым или есть веская причина, по которой эта функция не реализована.
Патчи должны быть максимально актуальными, желательно относительно текущего Git или последнего снимка. Они должны соответствовать стилю кодирования OpenSSL и компилироваться без предупреждений. Некоторые целей разработчиков основной команды можно использовать для тестирования (debug-steve64, debug-geoff и т.д.). OpenSSL компилируется на многих различных платформах: старайтесь использовать только переносимые функции.
Примечание: по юридическим причинам вклады из США могут быть приняты только если уведомление TSU и копия патча отправлены на [email protected] (ранее BXA) с копией координатору запросов на шифрование ENC; пожалуйста, уделите время, чтобы ознакомиться с http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] и http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Раздел 740.13(e)) для получения подробной информации. Если "ваш исходный код шифрования слишком велик для отправки в виде вложения по электронной почте", они с удовольствием получат его по факсу; надеемся, у вас есть дешёвый междугородний тариф.
Наш предпочтительный формат для изменений — вывод "diff -u". Вы можете сгенерировать его так: