mirror of
				https://github.com/drwetter/testssl.sh.git
				synced 2025-10-31 05:45:26 +01:00 
			
		
		
		
	- new binaries with:
- chaha20+ploy1305, thx to Peter Mosmans - openssl starttls krb-telnet support (thx to Stefan Zehl) - openssl starttls xmpp starttls/sni patch (thx to Stefan Zehl) - record breaking 167 ciphers (including kerberos)
This commit is contained in:
		
							
								
								
									
										72
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/Readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/Readme.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,72 @@ | |||||||
|  |  | ||||||
|  | Compilation instructions | ||||||
|  | ======================== | ||||||
|  |  | ||||||
|  | Currrent precompiled versions are are from OpenSSL 1.0.2i* You can | ||||||
|  | also pull a snapshot from git. This is a fork of OpenSSL from Peter Mosmans, | ||||||
|  | just to get chacha20+poly1305 support (thx!). Please note that the support | ||||||
|  | from official OpenSSL git repo doesn't work correctly and is not supported | ||||||
|  | (https://www.mail-archive.com/openssl-dev@openssl.org/msg34756.html) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | > $ git clone https://github.com/PeterMosmans/openssl | ||||||
|  | > $ cd openssl | ||||||
|  |  | ||||||
|  | General instructions | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | * 64 bit version was compiled under Opensuse 12.3 | ||||||
|  | * 32 bit version was compiled under Ubuntu 12.04 LTS | ||||||
|  |  | ||||||
|  | In addition to the binaries statically linked binaries I provide -- except a few | ||||||
|  | libs which are nowadays sometimes hard to link -- I compiled a set of | ||||||
|  | dynamic binaries. The catch here are the Kerberos libs: No Linux | ||||||
|  | distributor privides static libs. As of now I feel to lazy to compile | ||||||
|  | MIT or KTH from scratch to get statitic libs. | ||||||
|  |  | ||||||
|  | So for the kerberos binaries I provide you need a whopping bunch of libraries which | ||||||
|  | you maybe need to install (libgssapi_krb5, libkrb5, libcom_err, libk5crypto, libkrb5support,  | ||||||
|  | libkeyutils). For the 'static' binaries kerberos is not compiled in, so that's is not needed. | ||||||
|  |  | ||||||
|  | If you want to compile OpenSSL yourself, here are the instructions: | ||||||
|  |  | ||||||
|  | 0.) apply experimental-features.patch (otherwise you miss the experimental features) | ||||||
|  | 1.) apply openssl-telnet-starttls.patch and openssl-telnet-starttls.patch | ||||||
|  |     (provided by Stefan Zehl, thx!).  | ||||||
|  |  | ||||||
|  | 3.) configure the damned thing. Options I used: | ||||||
|  |  | ||||||
|  | * for 64Bit:  | ||||||
|  | >./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 --with-krb5-flavor=MIT experimental-jpake   | ||||||
|  |  | ||||||
|  | * for 32 Bit: > | ||||||
|  | ./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 --with-krb5-flavor=MIT experimental-jpake  | ||||||
|  |  | ||||||
|  | Don't use -DTEMP_GOST_TLS, it breaks things! | ||||||
|  |  | ||||||
|  | If you don't have Kerberos libraries and devel rpms/debs, omit "--with-krb5-flavor=MIT".  | ||||||
|  | If you have e.g. Heimdal --> figure out by yourself. | ||||||
|  |  | ||||||
|  | For real GOST cipher [1] support you need to built static libs as the crypto | ||||||
|  | engine is a shared lib (additional options: "shared -fPIC -DOPENSSL_PIC"). | ||||||
|  | If you aiming at this you rather should compile everything with another prefix  | ||||||
|  | as you don't want your openssl binary to end up loading system libraries like libssl or | ||||||
|  | libcrypto. Alternatively you can hack the Makefile and include those | ||||||
|  | libs which you compiled statically as ".a". | ||||||
|  |  | ||||||
|  | 4.) make depend | ||||||
|  | 5.) make | ||||||
|  | 6.) make report (check whether it runs ok) | ||||||
|  |  | ||||||
|  | 7.) "openssl ciphers -V ALL:COMPLEMENTOFALL | wc -l" lists for me w/ kerberos and w/o GOST cipher engine | ||||||
|  |      167 ciphers as opposed to 111/109 from Ubuntu or Opensuse. | ||||||
|  |  | ||||||
|  | **Never use my binaries for anything else then for testing** | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Enjoy, | ||||||
|  |  | ||||||
|  | Dirk | ||||||
|  |  | ||||||
|  |  | ||||||
|  | [1] https://en.wikipedia.org/wiki/GOST_%28block_cipher%29 | ||||||
| @@ -0,0 +1,31 @@ | |||||||
|  | --- ./ssl/tls1.h.orig	2014-07-03 19:08:22.277405719 +0200 | ||||||
|  | +++ ./ssl/tls1.h	2014-07-03 19:08:36.799536119 +0200 | ||||||
|  | @@ -157,7 +157,7 @@ | ||||||
|  |  extern "C" { | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | -#define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES	0 | ||||||
|  | +#define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES	1 | ||||||
|  |   | ||||||
|  |  #define TLS1_2_VERSION			0x0303 | ||||||
|  |  #define TLS1_2_VERSION_MAJOR		0x03 | ||||||
|  | --- ./ssl/s2_lib.c.orig	2014-07-03 10:04:32.035552187 +0200 | ||||||
|  | +++ ./ssl/s2_lib.c	2014-07-03 19:08:22.280405746 +0200 | ||||||
|  | @@ -122,7 +122,7 @@ | ||||||
|  |   | ||||||
|  |  /* list of available SSLv2 ciphers (sorted by id) */ | ||||||
|  |  OPENSSL_GLOBAL const SSL_CIPHER ssl2_ciphers[]={ | ||||||
|  | -#if 0 | ||||||
|  | +#if 1 | ||||||
|  |  /* NULL_WITH_MD5 v3 */ | ||||||
|  |  	{ | ||||||
|  |  	1, | ||||||
|  | @@ -254,7 +254,7 @@ | ||||||
|  |  	168, | ||||||
|  |  	}, | ||||||
|  |   | ||||||
|  | -#if 0 | ||||||
|  | +#if 1 | ||||||
|  |  /* RC4_64_WITH_MD5 */ | ||||||
|  |  	{ | ||||||
|  |  	1, | ||||||
							
								
								
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -0,0 +1,78 @@ | |||||||
|  | --- apps/s_client.c.org	2009-12-16 15:28:28.000000000 -0500 | ||||||
|  | +++ apps/s_client.c	2010-11-16 12:07:02.274824820 -0500 | ||||||
|  | @@ -329,8 +329,8 @@ static void sc_usage(void) | ||||||
|  |  	BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n"); | ||||||
|  |  	BIO_printf(bio_err,"                 for those protocols that support it, where\n"); | ||||||
|  |  	BIO_printf(bio_err,"                 'prot' defines which one to assume.  Currently,\n"); | ||||||
|  | -	BIO_printf(bio_err,"                 only \"smtp\", \"pop3\", \"imap\", \"ftp\" and \"xmpp\"\n"); | ||||||
|  | -	BIO_printf(bio_err,"                 are supported.\n"); | ||||||
|  | +	BIO_printf(bio_err,"                 only \"smtp\", \"pop3\", \"imap\", \"ftp\", \"xmpp\", and\n"); | ||||||
|  | +	BIO_printf(bio_err,"                 \"telnet\" are supported.\n"); | ||||||
|  |  #ifndef OPENSSL_NO_ENGINE | ||||||
|  |  	BIO_printf(bio_err," -engine id    - Initialise and use the specified engine\n"); | ||||||
|  |  #endif | ||||||
|  | @@ -375,7 +375,8 @@ enum | ||||||
|  |  	PROTO_POP3, | ||||||
|  |  	PROTO_IMAP, | ||||||
|  |  	PROTO_FTP, | ||||||
|  | -	PROTO_XMPP | ||||||
|  | +	PROTO_XMPP, | ||||||
|  | +	PROTO_TELNET | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  int MAIN(int, char **); | ||||||
|  | @@ -688,6 +689,8 @@ int MAIN(int argc, char **argv) | ||||||
|  |  				starttls_proto = PROTO_FTP; | ||||||
|  |  			else if (strcmp(*argv, "xmpp") == 0) | ||||||
|  |  				starttls_proto = PROTO_XMPP; | ||||||
|  | +			else if (strcmp(*argv, "telnet") == 0) | ||||||
|  | +				starttls_proto = PROTO_TELNET; | ||||||
|  |  			else | ||||||
|  |  				goto bad; | ||||||
|  |  			} | ||||||
|  | @@ -1200,6 +1203,45 @@ SSL_set_tlsext_status_ids(con, ids); | ||||||
|  |  			goto shut; | ||||||
|  |  		mbuf[0] = 0; | ||||||
|  |  		} | ||||||
|  | +	else if (starttls_proto == PROTO_TELNET) | ||||||
|  | +		{ | ||||||
|  | +		static const unsigned char tls_do[] = | ||||||
|  | +			{ | ||||||
|  | +			255 /* IAC */, | ||||||
|  | +			253 /* DO */, | ||||||
|  | +			 46 /* START_TLS */ | ||||||
|  | +			}; | ||||||
|  | +		static const unsigned char tls_will[] = | ||||||
|  | +			{ | ||||||
|  | +			255 /* IAC */, | ||||||
|  | +			251 /* WILL */, | ||||||
|  | +			 46 /* START_TLS */ | ||||||
|  | +			}; | ||||||
|  | +		static const unsigned char tls_follows[] = | ||||||
|  | +			{ | ||||||
|  | +			255 /* IAC */, | ||||||
|  | +			250 /* SB */, | ||||||
|  | +			 46 /* START_TLS */, | ||||||
|  | +			  1 /* FOLLOWS */, | ||||||
|  | +			255 /* IAC */, | ||||||
|  | +			240 /* SE */ | ||||||
|  | +			}; | ||||||
|  | +		int bytes; | ||||||
|  | + | ||||||
|  | +		/* Telnet server should demand we issue START_TLS */ | ||||||
|  | +		bytes = BIO_read(sbio,mbuf,BUFSIZZ); | ||||||
|  | +		if (!(bytes == 3 && memcmp(mbuf, tls_do, 3) == 0)) | ||||||
|  | +			goto shut; | ||||||
|  | +		/* Agree to issue START_TLS and send the FOLLOWS sub-command */ | ||||||
|  | +		BIO_write(sbio, tls_will, 3); | ||||||
|  | +		BIO_write(sbio, tls_follows, 6); | ||||||
|  | +		(void)BIO_flush(sbio); | ||||||
|  | +		/* Telnet server also sent the FOLLOWS sub-command */ | ||||||
|  | +		bytes = BIO_read(sbio,mbuf,BUFSIZZ); | ||||||
|  | +		if (!(bytes == 6 && memcmp(mbuf, tls_follows, 6) == 0)) | ||||||
|  | +			goto shut; | ||||||
|  | +		/* Any traffic after this point must be TLS negotiation */ | ||||||
|  | +		} | ||||||
|  |   | ||||||
|  |  	for (;;) | ||||||
|  |  		{ | ||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | --- apps/s_client.c.org	2014-05-23 16:01:41.000000000 +0200 | ||||||
|  | +++ apps/s_client.c	2014-05-23 16:02:25.414679645 +0200 | ||||||
|  | @@ -1478,7 +1478,7 @@ | ||||||
|  |  		int seen = 0; | ||||||
|  |  		BIO_printf(sbio,"<stream:stream " | ||||||
|  |  		    "xmlns:stream='http://etherx.jabber.org/streams' " | ||||||
|  | -		    "xmlns='jabber:client' to='%s' version='1.0'>", host); | ||||||
|  | +		    "xmlns='jabber:client' to='%s' version='1.0'>", servername?servername:host); | ||||||
|  |  		seen = BIO_read(sbio,mbuf,BUFSIZZ); | ||||||
|  |  		mbuf[seen] = 0; | ||||||
|  |  		while (!strstr(mbuf, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'")) | ||||||
							
								
								
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl32-1.0.2pm-krb5.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl32-1.0.2pm-krb5.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl32-1.0.2pm.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl32-1.0.2pm.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl64-1.0.2pm-krb5.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl64-1.0.2pm-krb5.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl64-1.0.2pm.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								openssl-bins/openssl-1.0.2-chacha.pm/openssl64-1.0.2pm.chacha+poly
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user
	 Dirk Wetter
					Dirk Wetter