|
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
| Назад | Оглавление | Вперед |