L i n u x P a r k при поддержке ВебКлуба |
Назад | Оглавление | Вперед |
Глава 16 Серверное программное обеспечение (Сетевой сервис шифрования) - OPENSSL серверВ этой главеLinux OPENSSL сервер Конфигурации Команды Организация защиты Openssl Linux FreeS/WAN VPN Настройка RSA private keys secrets Требования по настройке сети для IPSec Тестирование инсталляции |
Большинство серверов подобных IMAP & POP, Samba, OpenLDAP, FTP, Apache и других, которым необходима аутентификация пользователей перед разрешением использования сервиса, по умолчанию, передают имя пользователя и пароль в простом текстовом виде. Альтернативные механизмы шифрования подобные SSL гарантируют надежность и безопасность транзакций. С этой технологией, данные передаются через сеть в зашифрованном виде. Однажды установив OpenSSL на своем сервере, вы можете использовать его как стороннюю утилиту в других приложениях, для включения в них возможностей SSL.
Из описания OpenSSL:
Проект OpenSSL √ это совместная попытка разработать надежную, коммерчески независимую, полнофункциональную и распространяемую с открытыми кодами реализацию протоколов Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1) с полной криптографией. Проект управляется добровольцами всемирного сообщества, которые используют Интернет для общения, планирования и разработки инструментария OpenSSL и связанной с ним документацией.
Основные преимущества использования технологий шифрования следующие:
Несколько юридических проблем существует при использовании SSL технологии. Если вы планируете использовать OpenSSL для коммерческих целей, то необходимо получить у RSA лицензию на использование RSA библиотек.
Здесь приведено извлечение из файла README OpenSSL:
Разные компании владеют патентами на разные алгоритмы в разных местах мира. Вы сами отвечаете за то, что бы использование любых алгоритмов для вас было юридически законно, проверяя имеются ли какие-либо патенты у вас в стране. Этот файл включает некоторые патенты о которых мы точно или ⌠по слухам■ знаем. Это не точный список.
RSA Data Security держит программный патент на алгоритмы RSA и RC5. Если принадлежащий им код используется в США (и Японии?), вы должны контактировать с RSA Data Security об условиях лицензии. Их веб-сервер: http://www.rsa.com/.
RC4 √ это торговая марка RSA Data Security, так что его использование возможно только с разрешения RSA Data Security.
Алгоритм IDEA патентован Ascom в Австрии, Франции, Германии, Италии, Японии, Нидерландах, Испании, Швеции, Швейцарии, Соединенном Королевстве и США. С ними нужно войти в контакт если вы используете этот алгоритм; их веб-сервер: http://www.ascom.ch/.
Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам ⌠/var/tmp■ (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем ⌠root■.
OpenSSL версии 0.9.5a
Пакеты.
Домашняя страница OpenSSL: http://www.openssl.org/
Вы должны скачать: openssl-0.9.5a.tar.gz
Тарболы.
Хорошей идеей будет создать список файлов установленных в вашей системе до
инсталляции Sendmail и после, в результате, с помощью утилиты diff вы
сможете узнать какие файлы были установлены. Например,
До инсталляции:
find /* > OpenSSL1
После инсталляции:
find /* > OpenSSL2
Для получения списка установленных файлов:
diff OpenSSL1 OpenSSL2 > OpenSSL-Installed
Раскройте тарбол:
[root@deep /]# cp openssl-version.tar.gz /var/tmpПерейдите в новый Openssl каталог и введите следующие команды на вашем терминале:
Шаг 1Редактируйте файл c_rehash (vi +11 tools/c_rehash) и измените следующую строку:
DIR=/usr/local/ssl
Должен быть:
DIR=/usr
Изменение этой строки будет создавать и инсталлировать OpenSSL в ⌠/usr■.
Шаг 2По умолчанию, исходные файлы OpenSSL предполагают что Perl расположен в каталоге ⌠/usr/local/bin/perl■. Мы должны модифицировать строку ⌠#!/usr/local/bin/perl■ во всех скриптах, которые зависят от perl, на месторасположение Perl в Red Hat Linux - ⌠/usr/bin■.
[root@deep openssl-0.9.5a]# perl util/perlpath.pl /usr/bin (где находится ваша программа perl).OpenSSL должен знать где находится необходимые OpenSSL исходные библиотеки. Командой приведенной ниже, мы устанавливаем переменную окружения PATH в каталог по умолчанию, где мы разместили исходные файлы OpenSSL.
[root@deep openssl-0.9.5a]# export LD_LIBRARY_PATH=`pwd`Сейчас, мы должны сконфигурировать OpenSSL под нашу систему:
CC="egcs" \ЗАМЕЧАНИЕ. Опция ⌠-DSSL_FORBID_ENULL■ нужна, чтобы запретить нулевое шифрование из соображений безопасности.
Шаг 5Редактируйте файл Makefile.ssl (vi +50 Makefile.ssl) и внесите следующие изменения:
CC= gcc
Должен быть:
CC= egcs
Редактируйте файл Makefile.ssl (vi +52 Makefile.ssl) и добавьте/измените следующие строки:
CFLAG= -DTHREADS -D_REENTRANT -DSSL_FORBID_ENULL -DL_ENDIAN -DTERMIO -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASMРедактируйте файл Makefile.ssl (vi +79 Makefile.ssl) и измените следующее значение для процессора Pentium Pro:
PROCESSOR= 686ЗАМЕЧАНИЕ. Три последние модификации выполненные нами устанавливают оптимизационные флаги для компиляции OpenSSL на сервере. Последняя модификация (PROCESSOR=), если у вас Pentium, то измените на 586, Pentium Pro/II/III на 686, a 486 на 486.
Шаг 6Редактируйте файл Makefile.ssl (vi +161 Makefile.ssl) и измените следующую строку:
MANDIR=$(OPENSSLDIR)/man
Должна быть:
MANDIR=/usr/man
Этот шаг нужен для определения каталога, куда будут проинсталлированы страницы руководства (man pages) OpenSSL. В нашем случае это каталог ⌠/usr/man■.
Шаг 7Сейчас мы должны скомпилировать и инсталлировать OpenSSL на сервере:
[root@deep openssl-0.9.5a]# make -f MakefileКоманда "make -f" создаст библиотеки OpenSSL (libcrypto.a и libssl.a) и двоичный файл "openssl". Библиотеки будут созданы в каталоге верхнего уровня, а двоичный файл в каталоге "apps". После успешного создания, команда "make test" будет тестировать библиотеки и в заключении "make install" создаст инсталляционный каталог и инсталлирует OpenSSL.
Команда ⌠mv■ переместит все файлы из ⌠/etc/ssl/misc/■ в каталог ⌠/usr/bin/■. Эти файлы двоичные и должны располагаться в ⌠/usr/bin/■, так как там находятся все исполняемые файлы вашей системы. Также размещение их в этом каталоге поместит их в поле действия переменной окружения PATH.
Команда ⌠rm■ удалит каталоги ⌠/etc/ssl/misc/■ и ⌠/etc/ssl/lib/■ из вашей системы, так как они сейчас располагаются в другом месте. Также, мы удаляем файлы ⌠CA.pl■ и ⌠CA.sh■, представляющие из себя небольшие скрипты для создания ваших собственных CA сертификатов. Эти скрипты, связанные с ⌠openssl ca■ командами, имеют несколько странные требования, и по умолчанию конфигурация OpenSSL не позволяет вам легко напрямую использовать ⌠openssl ca■.Так, что мы создадим скрипт ⌠sign.sh■ позже, чтобы заменить их.
ЗАМЕЧАНИЕ. Пакет bc-1.05a-4.i386.rpm или новее должен быть уже проинсталлирован на вашем Linux сервере или вы получите сообщение об ошибке во время тестирования библиотек OpenSSL.
Команды ⌠rm■ будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции OpenSSL. Также будет удален сжатый архив OpenSSL из каталога ⌠/var/tmp■.
Все программное обеспечение, описанное в книге, имеет определенный каталог и подкаталог в архиве ⌠floppy.tgz■, включающей все конфигурационные файлы для всех программ. Если вы скачаете этот файл, то вам не нужно будет вручную воспроизводить файлы из книги, чтобы создать свои файлы конфигурации. Скопируйте файл связанные с OpenSSL из архива, измените их под свои требования и поместите в нужное место так, как это описано ниже. Файл с конфигурациями вы можете скачать с адреса: http://www.openna.com/books/floppy.tgz
Для запуска OpenSSL сервера следующие файлы должны быть созданы или скопированы в нужный каталог:
Копируйте файл openssl.cnf в каталог ⌠/etc/ssl/■.
Копируйте файл sign.sh в каталог ⌠/usr/bin/■.
Вы можете взять эти файлы из нашего архива floppy.tgz.
Это общий конфигурационный файл для программы OpenSSL, где вы можете настроить срок хранения ваших ключей, имя организации, адрес и т.д. Эти параметры вы можете изменить в секциях [ CA_default ] и [req_distinguished_name].
Редактируйте файл openssl.cnf (vi /etc/ssl/openssl.cnf):
# Примерный конфигурационный файл OpenSSL. # Это главным образом используется для создания удостоверяющих запросов. # RANDFILE = $ENV::HOME/.rnd oid_file = $ENV::HOME/.oid oid_section = new_oids # Используйте этот конфигурационный файл с опцией "-extfile" из # утилиты "openssl x509", имя секции содержит # расширения X.509v3, чтобы использовать: # extensions = # (Альтернативно, используйте конфигурационный файл который имеет только # X.509v3 расширения в основной [= default] секции.) [ new_oids ] # Мы можем добавить новый OIDs здесь для использования в 'ca' и 'req'. # Добавьте простой OID подобно этому: # testoid1=1.2.3.4 # Или используйте подстановку конфигурационного файла наподобие этого: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # Это ca секция по умолчанию #################################################################### [ CA_default ] dir = /etc/ssl # где все хранится certs = $dir/certs # где хранятся штатные сертификаты crl_dir = $dir/crl # где хранятся штатные crl database = $dir/ca.db.index # файл с базой данных индексов. new_certs_dir = $dir/ca.db.certs # место по умолчанию для новых сертификатов. certificate = $dir/certs/ca.crt # CA сертификат serial = $dir/ca.db.serial # текущий регистрационный номер crl = $dir/crl.pem # текущий CRL private_key = $dir/private/ca.key # приватный ключ RANDFILE = $dir/ca.db.rand # приватный файл со случайным числом x509_extensions = usr_cert # расширение добавляемое к сертификату # Расширение добавляемое к CRL. Замечание: Netscape communicator # основывается на V2 CRL так что по умолчанию это закомментировано, # чтобы оставить V1 CRL. # crl_extensions = crl_ext default_days = 365 # сколько времени удостоверяет default_crl_days = 30 # сколько времени до следующего CRL default_md = md5 # какой использовать md. Preserve = no # сохранять порядок пройденных DN # Несколько различных путей для определения, как подобные запросы должны # выглядеть для CA, список атрибутов должен быть такой же и плюс некоторые # необязательные поля policy = policy_match # Для CA политик [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional # Для 'чьих угодно' политик # В этом пункте вы должны перечислить все приемлемые типы объектов [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional #################################################################### [ req ] default_bits = 1024 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes x509_extensions = v3_ca # Расширение добавляемое к самоподписанным сертификатам [ req_distinguished_name ] countryName = Country Name (2-х буквенный код) countryName_default = CA countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (полное имя) stateOrProvinceName_default = Quebec localityName = Locality Name (например, город) localityName_default = Montreal 0.organizationName = Organization Name (например, компания) 0.organizationName_default = Open Network Architecture # мы можем сделать это, но обычно это не нужно :-) #1.organizationName = Second Organization Name (например, компания) #1.organizationName_default = World Wide Web Pty Ltd organizationalUnitName = Organizational Unit Name (например, подразделение) organizationalUnitName_default = Internet Department commonName = Common Name (например, ВАШЕ имя) commonName_default = www.openna.com commonName_max = 64 emailAddress = Email Address emailAddress_default = admin@openna.com emailAddress_max = 40 # SET-ex3 = SET extension number 3 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 unstructuredName = An optional company name [ usr_cert ] # Эти расширения добавляются, когда 'ca' подписанный запрос. # Это идет против рекомендаций PKIX, но некоторые CA делают это и # некоторые программы запрашивают это, чтобы уклониться от # интерпретирования сертификатов конечных пользователей как CA. basicConstraints=CA:FALSE # Здесь приведены некоторые примеры использования nsCertType. Если это # пропущено, то сертификат может использоваться для каких-нибудь пропусков # подписаний объектов. # Это OK для сервера SSL. # nsCertType = server # Это используется для объекта, подписывающего сертификат. # nsCertType = objsign # Это обычно используется для нормальных клиентов # nsCertType = client, email # и для всего, включая объекты подписания: # nsCertType = client, email, objsign # Это типично в keyUsage для клиентских сертификатов. # keyUsage = nonRepudiation, digitalSignature, keyEncipherment # Это будет выводится в списковом окне комментариев Netscape. nsComment = "OpenSSL Generated Certificate" # PKIX рекомендации, безопасно если включены все сертификаты. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer:always # Это для subjectAltName и issuerAltname. # Импортирование почтового адрес. # subjectAltName=email:copy # Copy subject details # issuerAltName=issuer:copy #nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem #nsBaseUrl #nsRevocationUrl #nsRenewalUrl #nsCaPolicyUrl #nsSslServerName [ v3_ca] # Расширение для типичного CA # Рекомендация PKIX. subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always # Это то, что рекомендует PKIX, но некоторые ⌠неправильные■ программы # засоряют критическими расширениями #basicConstraints = critical,CA:true #Так мы делаем это вместо вышеприведенного. basicConstraints = CA:true # Ключевое использование: это типично для CA сертификатов. Однако, так как # это предотвратит использование для проверки самоподписанных # сертификатов, лучше по умолчанию это не учитывать. # keyUsage = cRLSign, keyCertSign # Некоторые могли бы хотеть также # nsCertType = sslCA, emailCA # Включение почтового адреса в subject alt name: другая рекомендация PKIX # subjectAltName=email:copy # Копирование деталей запрашивающей стороны # issuerAltName=issuer:copy # RAW DER hex encoding of an extension: beware experts only! # 1.2.3.5=RAW:02:03 # You can even override a supported extension: # basicConstraints= critical, RAW:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. # issuerAltName=issuer:copy authorityKeyIdentifier=keyid:always,issuer:always
ЗАМЕЧАНИЕ. Файл ⌠openssl.cnf■ уже будет существовать на вашей системе, когда вы скомпилируете и проинсталлируете программу OpenSSL, и может быть найден в каталоге ⌠/etc/ssl/■. Вам не нужно менять все опции установленные по умолчанию в этом файле; обычно, достаточно внести изменения в секции [CA_default] и [req_distinguished_name].
Команда ⌠openssl ca■ имеет некоторые странные требования и конфигурация
OpenSSL по умолчанию не позволяет легко использовать ее напрямую. Поэтому
мы будем создавать программу ⌠sign.sh■, заменяющую собой ⌠openssl ca■.
Создайте программный файл sign.sh (touch /usr/bin/sign.sh) и добавьте в него
следующие строки:
#!/bin/sh ## ## sign.sh -- Sign a SSL Certificate Request (CSR) ## Copyright (c) 1998-1999 Ralf S. Engelschall, All Rights Reserved. ## # argument line handling CSR=$1 if [ $# -ne 1 ]; then echo "Usage: sign.sign <whatever>.csr"; exit 1 fi if [ ! -f $CSR ]; then echo "CSR not found: $CSR"; exit 1 fi case $CSR in *.csr ) CERT="`echo $CSR | sed -e 's/\.csr/.crt/'`" ;; * ) CERT="$CSR.crt" ;; esac # make sure environment exists if [ ! -d ca.db.certs ]; then mkdir ca.db.certs fi if [ ! -f ca.db.serial ]; then echo '01' >ca.db.serial fi if [ ! -f ca.db.index ]; then cp /dev/null ca.db.index fi # create an own SSLeay config cat >ca.config <<EOT [ ca ] default_ca = CA_own [ CA_own ] dir = /etc/ssl certs = /etc/ssl/certs new_certs_dir = /etc/ssl/ca.db.certs database = /etc/ssl/ca.db.index serial = /etc/ssl/ca.db.serial RANDFILE = /etc/ssl/ca.db.rand certificate = /etc/ssl/certs/ca.crt private_key = /etc/ssl/private/ca.key default_days = 365 default_crl_days = 30 default_md = md5 preserve = no policy = policy_anything [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional EOT # sign the certificate echo "CA signing: $CSR -> $CERT:" openssl ca -config ca.config -out $CERT -infiles $CSR echo "CA verifying: $CERT <-> CA cert" openssl verify -CAfile /etc/ssl/certs/ca.crt $CERT # cleanup after SSLeay rm -f ca.config rm -f ca.db.serial.old rm -f ca.db.index.old # die gracefully exit 0
Сейчас, сделаем эту программу исполняемой и изменим права доступа принятые по умолчанию:
[root@deep /]# chmod 755 /usr/bin/sign.shЗАМЕЧАНИЕ. Вы можете найти прогамму ⌠sign.sh■ в дистрибутиве mod_ssl в каталоге ⌠mod_ssl-version/pkg.contrib/■ или в нашем архиве floppy.tgz. Также заметим, что секция [CA_own] должна быть изменена в соответствии с вашим окружением и не забудьте изменит строку ■openssl verify √Cafile /etc/ssl/certs/ca.crt $CERT■.
Команды описанные ниже мы будем часто использовать, но на самом деле их много больше, и вы должны изучить страницы руководства (man) и документацию, чтобы получить более подробную информацию.
Для примера, мы покажем вам как создавать сертификат для вашего Веб сервера Apache и/или ваш личный CA (Certifying Authority (подтверждение полномочий)) для подписания ваших ⌠Certificate Signing Request■.
ЗАМЕЧАНИЕ. Все команды перечисленные ниже выполняются в каталоге ⌠/etc/ssl/■.
1.1 Создание приватного ключа RSA защищенного парольной фразой для вашего сервера Apache.
[root@deep ssl]# openssl genrsa -des3 -out server.key 1024Пожалуйста, создайте резервную копию файла server.key и запомните парольную фразу.
1.2 Создание Certificate Signing Request (CSR) с серверным приватным ключом RSA.
[root@deep ssl]# openssl req -new -key server.key -out server.csrЗАМЕЧАНИЕ. Убедитесь, что вы ввели FQDN (Полностью определенное доменное имя (⌠Fully Qualified Domain Name■)) сервера, когда OpenSSL спросил вас о ⌠CommonName■ (например, когда вы создаете CSR для Веб сервера который будет позже доступен через https://www.mydomain.com/, введите www.mydomain.com).
После создания вашего Certificate Signing Request (CSR), у вас возникают два варианта:
Первый, это послать этот сертификат в коммерческие структуры Certifying Authority (CA), подобные Verisign или Thawte, для подписания. Вы обычно отправляете CSR через Веб форму, оплачиваете подписание, ждете Сертификата и запоминаете его в файле ⌠server.crt■. Результатом всех этих операций будет настоящий сертификат, который может быть использован с Apache.
Второй, вы можете использовать ваш собственный CA и затем самостоятельно подписывать CSR этим CA. Это решение экономично, и позволяет организации поддерживать собственный CA сервер и создавать так много сертификатов, как нужно для внутреннего использования без выплаты каких-нибудь денег коммерческим CA.
К сожалению использование ваших собственных CA для создания сертификатов создает ряд проблем в электронной коммерции, потому что заказчики должны иметь некоторое доверие вашей организации через использования признанных коммерческих CA. Смотрите ниже информацию о том, как самостоятельно подписать CSR собственным CA.
1.3 Создание вашего приватного ключа RSA (CA).
[root@deep ssl]# openssl genrsa -des3 -out ca.key 1024Сделайте резервную копию этого файла ca.key и запомните парольную фразу (pass-phrase), которую вы ввели.
1.4 Создание самоподписанного (CA) сертификата (структура x509) с ключом RSA из CA.
[root@deep ssl]# openssl req -new -x509 -days 365 -key ca.key -out ca.crtЗАМЕЧАНИЕ. Команда ⌠req■ создает самоподписанный сертификат, когда используется переключатель -x509.
1.5 Подписание запросов сертификата. (Мы создаем и используем наш личный Certificate Authority (CA))
Приготовьте скрипт для подписания (он нужен, потому что команда ⌠openssl ca'' имеет некоторые странные требования и по умолчанию конфигурация OpenSSL не позволяет ее легко использовать напрямую). Скрипт с именем sign.sh находится в нашем архиве flopy.tgz в каталоге openssl. Используйте этот скрипт для подписания.
Сейчас вы можете использовать CA для подписания CSR сервера, чтобы создать реальный сертификат для внутреннего использования в Веб сервере Apache (предполагаем, что вы уже имеете файл server.csr под рукой):
[root@deep ssl]# /usr/bin/sign.sh server.csrСейчас мы имеем два файла: server.key и server.crt. Они могут быть использованы в конфигурационном файле httpd.conf Веб-сервера Apache следующим образом:
SSLCertificateFile /etc/ssl/certs/server.crt (публичный ключ веб сервера)Файл server.csr больше не нужен.
[root@deep ssl]# rm -f server.csrЗАМЕЧАНИЕ. Если вы получили сообщение об ошибке во время подписания сертификата, это потому что вы ввели неправильно FQDN (⌠Fully Qualified Domain Name■) для сервера, когда OpenSSL запросил у вас ⌠CommonName■; ⌠CommonName■ должен представлять из себя что-то подобное ⌠my.domain.com■ и не ⌠domain.com■. Также, так как вы создавали сертификат и CA сертификат, важно, чтобы хотя бы небольшая часть информации представленной в них отличалась, или вы можете столкнуться с проблемами во время подписания удостоверяющих запросов.
Сделайте ваши ключи ⌠Для чтения и записи■ только для пользователя root. Это важно, потому что никому не нужно работать к ним. Для этого выполните следующие команды.
[root@deep /]# chmod 600 /etc/ssl/certs/ca.crtOpenSSL может использоваться для:
> /etc/ssl > /etc/ssl/crl > /etc/ssl/certs > /etc/ssl/private > /etc/ssl/openssl.cnf > /usr/bin/openssl > /usr/bin/c_rehash > /usr/bin/sign.sh > /usr/man/man1/verify.1 > /usr/man/man1/version.1 > /usr/man/man1/x509.1 > /usr/man/man3/BN_CTX_new.3 > /usr/man/man3/BN_CTX_start.3 > /usr/man/man3/BN_add.3 > /usr/man/man3/BN_add_word.3 > /usr/man/man3/BN_bn2bin.3 > /usr/bin/c_hash > /usr/bin/c_info > /usr/bin/c_issuer > /usr/bin/c_name > /usr/bin/der_chop > /usr/include/openssl > /usr/include/openssl/e_os.h > /usr/include/openssl/e_os2.h > /usr/include/openssl/crypto.h > /usr/include/openssl/tmdiff.h > /usr/include/openssl/opensslv.h > /usr/include/openssl/opensslconf.h > /usr/include/openssl/ebcdic.h > /usr/include/openssl/md2.h > /usr/include/openssl/md5.h > /usr/include/openssl/sha.h > /usr/include/openssl/mdc2.h > /usr/include/openssl/hmac.h > /usr/include/openssl/ripemd.h > /usr/include/openssl/des.h > /usr/include/openssl/rc2.h > /usr/include/openssl/rc4.h > /usr/include/openssl/rc5.h > /usr/include/openssl/idea.h > /usr/include/openssl/blowfish.h > /usr/include/openssl/cast.h > /usr/include/openssl/bn.h > /usr/include/openssl/rsa.h > /usr/include/openssl/dsa.h > /usr/include/openssl/dh.h > /usr/include/openssl/buffer.h > /usr/include/openssl/bio.h > /usr/include/openssl/stack.h > /usr/include/openssl/safestack.h > /usr/include/openssl/lhash.h > /usr/include/openssl/rand.h > /usr/include/openssl/err.h > /usr/include/openssl/objects.h > /usr/include/openssl/evp.h > /usr/include/openssl/asn1.h > /usr/include/openssl/asn1_mac.h > /usr/include/openssl/pem.h > /usr/include/openssl/pem2.h > /usr/include/openssl/x509.h > /usr/include/openssl/x509_vfy.h > /usr/include/openssl/x509v3.h > /usr/include/openssl/conf.h > /usr/include/openssl/txt_db.h > /usr/include/openssl/pkcs7.h > /usr/include/openssl/pkcs12.h > /usr/include/openssl/comp.h > /usr/include/openssl/ssl.h > /usr/include/openssl/ssl2.h > /usr/include/openssl/ssl3.h > /usr/include/openssl/ssl23.h > /usr/include/openssl/tls1.h > /usr/include/openssl/rsaref.h > /usr/lib/libcrypto.a > /usr/lib/libssl.a > /usr/lib/libRSAglue.a > /usr/man/man1/CA.pl.1 > /usr/man/man1/asn1parse.1 > /usr/man/man3/BN_cmp.3 > /usr/man/man3/BN_copy.3 > /usr/man/man3/BN_generate_prime.3 > /usr/man/man3/BN_mod_inverse.3 > /usr/man/man3/BN_mod_mul_montgomery.3 > /usr/man/man3/BN_mod_mul_reciprocal.3 > /usr/man/man3/BN_new.3 > /usr/man/man3/BN_num_bytes.3 > /usr/man/man3/BN_rand.3 > /usr/man/man3/BN_set_bit.3 > /usr/man/man3/BN_zero.3 > /usr/man/man3/CRYPTO_set_ex_data.3 > /usr/man/man3/DH_generate_key.3 > /usr/man/man3/DH_generate_parameters.3 > /usr/man/man3/DH_get_ex_new_index.3 > /usr/man/man3/DH_new.3 > /usr/man/man3/DH_set_method.3 > /usr/man/man3/DH_size.3 > /usr/man/man3/DSA_SIG_new.3 > /usr/man/man3/DSA_do_sign.3 > /usr/man/man3/DSA_dup_DH.3 > /usr/man/man3/DSA_generate_key.3 > /usr/man/man3/DSA_generate_parameters.3 > /usr/man/man3/DSA_get_ex_new_index.3 > /usr/man/man3/DSA_new.3 > /usr/man/man3/DSA_set_method.3 > /usr/man/man3/DSA_sign.3 > /usr/man/man3/DSA_size.3 > /usr/man/man3/ERR_GET_LIB.3 > /usr/man/man3/ERR_clear_error.3 > /usr/man/man3/ERR_error_string.3 > /usr/man/man3/ERR_get_error.3 > /usr/man/man3/ERR_load_crypto_strings.3 > /usr/man/man3/ERR_load_strings.3 > /usr/man/man3/ERR_print_errors.3 > /usr/man/man3/ERR_put_error.3 > /usr/man/man3/ERR_remove_state.3 > /usr/man/man3/EVP_DigestInit.3 > /usr/man/man3/EVP_EncryptInit.3 > /usr/man/man3/OPENSSL_VERSION_NUMBER.3 > /usr/man/man3/OpenSSL_add_all_algorithms.3 > /usr/man/man3/RAND_add.3 > /usr/man/man3/RAND_bytes.3 > /usr/man/man3/RAND_cleanup.3 > /usr/man/man3/RAND_egd.3 > /usr/man/man3/RAND_load_file.3 > /usr/man/man3/RAND_set_rand_method.3 > /usr/man/man3/RSA_blinding_on.3 > /usr/man/man3/RSA_check_key.3 > /usr/man/man3/RSA_generate_key.3 > /usr/man/man3/RSA_get_ex_new_index.3 > /usr/man/man3/RSA_new.3 > /usr/man/man3/RSA_padding_add_PKCS1_type_1.3 > /usr/man/man3/RSA_print.3 > /usr/man/man3/RSA_private_encrypt.3 > /usr/man/man3/RSA_public_encrypt.3 > /usr/man/man3/RSA_set_method.3 > /usr/man/man3/RSA_sign.3 > /usr/man/man3/RSA_sign_ASN1_OCTET_STRING.3 > /usr/man/man3/RSA_size.3 > /usr/man/man3/blowfish.3 > /usr/man/man3/bn.3 > /usr/man/man1/ca.1 > /usr/man/man1/ciphers.1 > /usr/man/man1/crl.1 > /usr/man/man1/crl2pkcs7.1 > /usr/man/man1/dgst.1 > /usr/man/man1/dhparam.1 > /usr/man/man1/dsa.1 > /usr/man/man1/dsaparam.1 > /usr/man/man1/enc.1 > /usr/man/man1/gendsa.1 > /usr/man/man1/genrsa.1 > /usr/man/man1/nseq.1 > /usr/man/man1/openssl.1 > /usr/man/man1/pkcs12.1 > /usr/man/man1/pkcs7.1 > /usr/man/man1/pkcs8.1 > /usr/man/man1/req.1 > /usr/man/man1/rsa.1 > /usr/man/man1/s_client.1 > /usr/man/man1/s_server.1 > /usr/man/man1/sess_id.1 > /usr/man/man1/smime.1 > /usr/man/man1/speed.1 > /usr/man/man1/spkac.1 > /usr/man/man3/bn_internal.3 > /usr/man/man3/buffer.3 > /usr/man/man3/crypto.3 > /usr/man/man3/d2i_DHparams.3 > /usr/man/man3/d2i_RSAPublicKey.3 > /usr/man/man3/dh.3 > /usr/man/man3/dsa.3 > /usr/man/man3/err.3 > /usr/man/man3/hmac.3 > /usr/man/man3/lh_stats.3 > /usr/man/man3/lhash.3 > /usr/man/man3/md5.3 > /usr/man/man3/mdc2.3 > /usr/man/man3/rand.3 > /usr/man/man3/rc4.3 > /usr/man/man3/ripemd.3 > /usr/man/man3/rsa.3 > /usr/man/man3/sha.3 > /usr/man/man3/threads.3 > /usr/man/man3/SSL_get_error.3 > /usr/man/man3/ssl.3 > /usr/man/man5/config.5 > /usr/man/man7/des_modes.7
Назад | Оглавление | Вперед |