2014-07-04 11:59:01 +02:00
2015-05-12 10:21:31 +02:00
Compiling and Usage Instructions
================================
2014-07-16 18:49:46 +02:00
2014-07-18 22:48:46 +02:00
The precompiled binaries provided here have extended support for everything
2015-07-17 10:55:15 +02:00
which is normally not configured to be compiled (40+56 Bit, export/ANON ciphers, weak DH ciphers,
2015-05-12 10:21:31 +02:00
SSLv2 etc.). The binaries also come with extended support for new cipher suites
and/or features which are not (yet?) in the official branch.
2014-07-04 11:59:01 +02:00
2015-02-10 12:39:02 +01:00
The binaries in this directory are all compiled from an OpenSSL 1.0.2 fork
2014-07-16 18:35:42 +02:00
from Peter Mosmans. He has patched the master git branch
2015-05-12 10:21:31 +02:00
to support CHACHA20 + POLY1305 and other ciphers like CAMELIA 256 Bit.
2014-07-16 18:35:42 +02:00
2015-07-17 10:51:28 +02:00
The binary ``openssl-1.0.2pm.darwin.64``, based on Peter Mosmans 1.0.2b-dev, was borrowed with permission from Julien Vehent's cipherscan.
2015-07-17 10:48:26 +02:00
2014-07-04 11:59:01 +02:00
2014-07-16 18:35:42 +02:00
General
-------
2015-07-17 10:55:15 +02:00
Both 64+32 bit Linux binaries were compiled under Ubuntu 12.04 LTS. Likely you
cannot use them for older distributions, younger worked in my test environments. I provide
2015-05-12 10:21:31 +02:00
for each distributions two sets of binaries:
2014-07-04 11:59:01 +02:00
2015-02-21 10:46:30 +01:00
* completely statically linked binaries
2015-05-12 10:21:31 +02:00
* dynamically linked binaries, additionally with MIT Kerberos support ("krb5" in the name).
They provide also KRB5-* and EXP-KRB5-* support (in OpenSSL terminology, see krb5-ciphers.txt).
2014-07-04 11:59:01 +02:00
2015-02-21 10:46:30 +01:00
For the latter you need a whopping bunch of kerberos runtime libraries which you maybe need to
2014-07-16 18:35:42 +02:00
install from your distributor (libgssapi_krb5, libkrb5, libcom_err, libk5crypto, libkrb5support,
2015-02-21 10:46:30 +01:00
libkeyutils). The 'static' binaries do not have MIT kerberos support as there are no
static kerberos libs and I did not bother to compile them from the sources.
2014-07-04 11:59:01 +02:00
2014-07-16 18:35:42 +02:00
Compilation instructions
------------------------
2014-07-04 11:59:01 +02:00
If you want to compile OpenSSL yourself, here are the instructions:
2014-07-16 18:35:42 +02:00
1.) get openssl from Peter Mosmans' repo:
2014-07-04 12:27:17 +02:00
2014-07-16 18:35:42 +02:00
git clone https://github.com/PeterMosmans/openssl
cd openssl
2014-07-04 11:59:01 +02:00
2015-07-20 15:28:55 +02:00
2.) configure the damned thing. Options I used (see https://github.com/drwetter/testssl.sh/blob/master/openssl-bins/make-openssl.sh)
2014-07-04 11:59:01 +02:00
2015-02-05 09:22:01 +01:00
**for 64Bit including Kerberos ciphers:**
2014-07-04 11:59:01 +02:00
2014-10-16 16:46:01 +02:00
./config --prefix=/usr/ --openssldir=/etc/ssl enable-zlib enable-ssl2 enable-rc5 enable-rc2 \
enable-GOST enable-cms enable-md2 enable-mdc2 enable-ec enable-ec2m enable-ecdh enable-ecdsa \
2014-10-16 16:47:54 +02:00
enable-seed enable-camellia enable-idea enable-rfc3779 enable-ec_nistp_64_gcc_128 \
2015-07-20 15:28:55 +02:00
--with-krb5-flavor=MIT experimental-jpake -DOPENSSL_USE_BUILD_DATE -DTEMP_GOST_TLS
2015-02-05 09:22:01 +01:00
**for 64Bit, static binaries:**
2014-07-04 14:37:15 +02:00
2015-02-05 09:22:01 +01:00
./config --prefix=/usr/ --openssldir=/etc/ssl enable-zlib enable-ssl2 enable-rc5 enable-rc2 \
enable-GOST enable-cms enable-md2 enable-mdc2 enable-ec enable-ec2m enable-ecdh enable-ecdsa \
enable-seed enable-camellia enable-idea enable-rfc3779 enable-ec_nistp_64_gcc_128 \
2015-07-20 15:28:55 +02:00
-static experimental-jpake -DOPENSSL_USE_BUILD_DATE -DTEMP_GOST_TLS
2015-02-05 09:22:01 +01:00
**for 32 Bit including Kerberos ciphers:**
2014-07-04 14:37:15 +02:00
2014-10-16 16:46:01 +02:00
./config --prefix=/usr/ --openssldir=/etc/ssl enable-zlib enable-ssl2 enable-rc5 enable-rc2 \
2014-10-16 16:47:54 +02:00
enable-GOST enable-cms enable-md2 enable-mdc2 enable-ec enable-ec2m enable-ecdh enable-ecdsa \
2014-10-16 16:46:01 +02:00
enable-seed enable-camellia enable-idea enable-rfc3779 no-ec_nistp_64_gcc_128 \
2015-07-20 15:28:55 +02:00
--with-krb5-flavor=MIT experimental-jpake -DOPENSSL_USE_BUILD_DATE -DTEMP_GOST_TLS
2015-02-05 09:22:01 +01:00
**for 32 Bit, static binaries:**
./config --prefix=/usr/ --openssldir=/etc/ssl enable-zlib enable-ssl2 enable-rc5 enable-rc2 \
enable-GOST enable-cms enable-md2 enable-mdc2 enable-ec enable-ec2m enable-ecdh enable-ecdsa \
enable-seed enable-camellia enable-idea enable-rfc3779 no-ec_nistp_64_gcc_128 \
2015-07-20 15:28:55 +02:00
-static experimental-jpake -DOPENSSL_USE_BUILD_DATE -DTEMP_GOST_TLS
2014-07-04 11:59:01 +02:00
2015-07-20 19:06:53 +02:00
Two GOST [1][2] ciphers (``GOST-GOST94``, ``GOST-MD5``) come with ``-DTEMP_GOST_TLS``, four additional come via openssl engine. ``-DTEMP_GOST_TLS`` on earlier versions of openssl broke things.
2014-07-04 11:59:01 +02:00
2015-07-20 15:28:55 +02:00
So the difference you maybe spotted: If you don't have / don't want Kerberos libraries and devel rpms/debs, omit "--with-krb5-flavor=MIT" (see examples).
2015-07-17 10:55:15 +02:00
If you have another Kerberos flavor you would need to figure out by yourself.
2014-07-04 11:59:01 +02:00
2014-07-16 18:35:42 +02:00
3.) make depend
2014-07-04 11:59:01 +02:00
2014-07-16 18:35:42 +02:00
4.) make
2014-07-04 12:15:13 +02:00
2015-02-21 10:46:30 +01:00
5.) make report (check whether it runs ok!)
2014-07-04 12:15:13 +02:00
2014-11-24 16:43:11 +01:00
6.) "./apps/openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l" lists now for me
2015-07-20 15:28:55 +02:00
* 193(+4 GOST) ciphers -- including kerberos
* 179(+4 GOST) ciphers without kerberos
2014-07-04 11:59:01 +02:00
2014-07-16 18:35:42 +02:00
as opposed to 111/109 from Ubuntu or Opensuse.
2014-07-04 11:59:01 +02:00
2015-07-17 11:08:10 +02:00
**Never use these binaries for anything other than testing**
2014-07-04 14:15:45 +02:00
2015-07-17 10:55:15 +02:00
Enjoy, Dirk
2014-07-04 11:59:01 +02:00
2014-07-04 14:37:15 +02:00
[1] https://en.wikipedia.org/wiki/GOST_%29block_cipher%29
2015-07-20 19:06:53 +02:00
[2] http://fossies.org/linux/openssl/engines/ccgost/README.gost