
Полнофункциональный набор инструментов с открытым исходным кодом, реализующий протоколы 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, который
был доступен в сети несколько лет, а затем был перелицензирован
им как часть 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 Section 740.13(e)) для подробностей. Если "ваш исходный код шифрования слишком велик, чтобы служить вложением в письмо", они рады получить его по факсу; надеюсь, у вас дешевый тариф на международные звонки.
Наш предпочтительный формат для изменений — вывод "diff -u". Вы можете создать его так: