
Набор инструментов OpenSSL, реализующий протоколы 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, которая является простой неблокирующей
абстракцией ввода-вывода. Поддерживаемые в настоящее время методы: файловые дескрипторы,
сокеты, принятие сокетов, подключение сокетов, буфер памяти, буферизация, 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) по электронной почте:
Обратите внимание, что система отслеживания запросов НЕ должна использоваться для общих вопросов или запросов поддержки. То, что что-то работает не так, как вы ожидаете, не обязательно означает, что это ошибка в 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». Вы можете сгенерировать его так: