
OpenSSL 1.0.1g 源代码快照,一个实现 SSL/TLS 和通用加密、摘要和公钥算法的加密库。
OpenSSL 1.0.1g 7 апреля 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, разработанной Eric A. Young и Tim J. Hudson. Набор инструментов 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.
Нет ограничения на количество бит.
Обмен ключами/генерация ключей Diffie-Hellman.
Нет ограничения на количество бит.
Сертификаты X.509v3
Кодирование/декодирование X.509 в/из двоичного 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, пожалуйста, сначала выполните следующие шаги:
- Загрузите текущий снимок с 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 доступен на серверах ключей).