По умолчанию в Fedora и CentOS пакет OpenSSL собран без поддержки криптографии по эллиптическим кривым (ECC,  Elliptic Curve Crytography), так как реализация 
потенциально [[https://lists.fedoraproject.org/pipermail/legal/2011-June/00... нарушает]] ряд [[http://en.wikipedia.org/wiki/ECC_patents патентов]]. В Debian и Ubuntu пакет openssl собран с поддержкой ECC.На конференции Black Hat USA 2013 группа экспертов по криптографии представила результаты исследования, в результате которого был сделан [[https://threatpost.com/crypto-gains-ramp-up-calls-to-get-ahe... вывод]], что время алгоритма RSA сочтено и пока не поздно вендорам следует перейти на использовании криптографии по эллиптическим кривым. С учётом развития методов ускорения векторных вычислений, уже через пять лет RSA нельзя будет считать безопасным.
++ Пересборка OpenSSL и strongSwan (IPSec) в Fedora.
Удаляем пакет openssl-devel и устанавливаем пакеты, необходимые для сборки:
   rpm -e openssl-devel
   yum install rpm-build krb5-devel zlib-devel gcc \
      gmp-devel libcurl-devel openldap-devel \
      NetworkManager-devel NetworkManager-glib-devel sqlite-devel
Подготавливаем сборочное окружение rpmbuild:
   [ ! -e ~/.rpmmacros ] && \
       echo '%_topdir      %(echo $HOME)/rpmbuild' > ~/.rpmmacros
   [ ! -d rpmbuild ] && mkdir rpmbuild
   cd ~/rpmbuild
   mkdir -p BUILD BUILDROOT RPMS/i386 RPMS/x86_64 SOURCES SPECS SRPMS
Загружаем src-пакет, заменяем изменённые исходные тексты на оригинальный openssl и применяем патч для включения сборки с ECC:
   cd ~/rpmbuild/SRPMS
   wget http://dl.fedoraproject.org/pub/fedora/linux/releases/19/Eve...
   rpm -i openssl-1.0.1e-4.fc19.src.rpm
   cd ../SOURCES
   wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
   cd ../SPECS
   wget http://zxvdr.fedorapeople.org/openssl.spec.ec_patch
   patch -p0 < openssl.spec.ec_patch
   sed -i -e 's/-usa.tar.xz/.tar.gz/' openssl.spec
   rpmbuild -bb openssl.spec
Устанавливаем собранный  OpenSSL:
   cd ~/rpmbuild/RPMS/$(uname -i)
   rpm -Uvh --force \
       openssl-1.0.1e*rpm \
       openssl-devel-1.0.1e*rpm \
       openssl-libs-1.0.1e*rpm
Проверяем поддержку ECC:
   openssl ec -help
Пересобриваем strongSwan, при наличии поддержки ECC в OpenSSL при пересборке strongSwan автоматически определит наличие ECC:
   wget http://dl.fedoraproject.org/pub/fedora/linux/releases/19/Eve...
   rpm -i strongswan-5.0.2-2.fc19.src.rpm
   cd ~/rpmbuild/SPECS
   rpmbuild -bb strongswan.spec
Устанавливаем strongSwan:
   cd ~/rpmbuild/RPMS/$(uname -i)
   rpm -Uvh --force \
      strongswan-5*rpm \
      strongswan-tnc-imcvs*rpm
Проверяем strongSwan, пытаясь создать ECDSA-ключ:
   cd /tmp
   strongswan pki -g --type ecdsa --size 384 > myKey.der
   strongswan pki -a --type ecdsa-priv --in myKey.der
   private key with:
   pubkey:    ECDSA 384 bits
 
++ Инструкция для CentOS 6.4
Формируем сборочное окружение
   yum -y update
   yum -y groupinstall 'Development tools'
Подключаем репозиторий EPEL 
   yum -y localinstall --nogpgcheck http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6... 
Устанавливаем и настраиваем сборочный инструментарий mock из EPEL:
   yum -y install fedora-packager
   userdel -rf abcd
   useradd -G mock abcd
   su abcd
Загружаем src-пакет и оригинал openssl 
   cd ~
   curl -O http://vault.centos.org/6.4/os/Source/SPackages/openssl-1.0....
   /usr/bin/mock ~/openssl-1.0.0-27.el6.src.rpm
   rm -rf /home/abcd/build
   mv /var/lib/mock/epel-6-x86_64/root/builddir/build/ /home/abcd 
   cd /home/abcd/build/SOURCES
   curl -O http://www.openssl.org/source/openssl-1.0.0.tar.gz 
Загружаем патч, устраняющий вывод ошибки при выполнении тестов
   curl -o patch300.patch http://cvs.openssl.org/patchset?cn=19998 
Правим spec-файл, включаем режим enable-ec, отключаем скрипт hobble и добавляем патч:
   cd ../SPECS
   sed -i -e "s/no-ec/enable-ec/; s/no-ecdh/enable-ecdh/; s/no-ecdsa/enable-ecdsa/" openssl.spec
   sed -i -e "s/^Source1: hobble-openssl/#&/; s/^%.SOURCE1. /#&/" openssl.spec
   sed -i -e "s/^Release.*dist\}/&.EC.1/" openssl.spec 
   sed -i -e "s/-usa.tar.bz2/.tar.gz/" openssl.spec 
   sed -i -e "s/^Patch78.*/&\nPatch300: patch300.patch\n/" openssl.spec
   sed -i -e "s/^%patch78.*/&\n%patch300 -p1 \n/" openssl.spec 
Пересобираем пакет:
   /usr/bin/mock --buildsrpm --spec  ~/build/SPECS/openssl.spec --sources  ~/build/SOURCES 
   cp /var/lib/mock/epel-6-x86_64/root/builddir/build/SRPMS/openssl-1.0.0-27.el6.EC.1.src.rpm /home/abcd
   cd ~
   /usr/bin/mock --rebuild openssl-1.0.0-27.el6.EC.1.src.rpm
 
URL: http://danielpocock.com/ussing-ecc-ecdsa-in-openssl-and-stro... http://unix.stackexchange.com/questions/81081/openssl-packag...
Обсуждается: http://www.opennet.dev/tips/info/2797.shtml