Subject: Re: openssl and IDEA
To: Sverre Froyen <sverre@viewmark.com>
From: Jun-ichiro itojun Hagino <itojun@iijlab.net>
List: current-users
Date: 06/08/2002 00:00:15
>The version of openssl in the source tree has dummy routines for the IDEA 
>cipher and possibly others.  This causes a problem when the result of an SSL 
>negotiation is to use IDEA. For instance, using the package source p5-libwww 
>and P5-SSLeay, the command
>	lwp-request https://epayhipvar.paymentech.net
>results in
>	IDEA is a patented algorithm; link against libcrypto_idea.a. Aborting...
>The openssl library appears to present IDEA as a valid cipher during the SSL 
>negotiation and then turn around and exit with the above error message when 
>IDEA is chosen.  Since IDEA is encumbered with a patent, the solution 
>suggested in the error message is not viable.  Instead, IDEA should not be 
>presented as a valid option in the first place.

	not sure if it is correct, but could you please try this? (diff against
	current, should be applicable to 1.6 branch)

itojun


Index: s2_lib.c
===================================================================
RCS file: /cvsroot/basesrc/crypto/dist/openssl/ssl/s2_lib.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 s2_lib.c
--- s2_lib.c	2001/04/12 03:11:25	1.1.1.3
+++ s2_lib.c	2002/06/07 14:59:26
@@ -136,6 +136,7 @@
 	SSL_ALL_STRENGTHS,
 	},
 /* IDEA_128_CBC_WITH_MD5 */
+#if 0
 	{
 	1,
 	SSL2_TXT_IDEA_128_CBC_WITH_MD5,
@@ -148,6 +149,7 @@
 	SSL_ALL_CIPHERS,
 	SSL_ALL_STRENGTHS,
 	},
+#endif
 /* DES_64_CBC_WITH_MD5 */
 	{
 	1,
Index: s3_lib.c
===================================================================
RCS file: /cvsroot/basesrc/crypto/dist/openssl/ssl/s3_lib.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 s3_lib.c
--- s3_lib.c	2001/04/12 03:11:27	1.1.1.3
+++ s3_lib.c	2002/06/07 14:59:27
@@ -271,6 +271,7 @@
 	SSL_ALL_STRENGTHS,
 	},
 /* Cipher 07 */
+#if 0
 	{
 	1,
 	SSL3_TXT_RSA_IDEA_128_SHA,
@@ -283,6 +284,7 @@
 	SSL_ALL_CIPHERS,
 	SSL_ALL_STRENGTHS,
 	},
+#endif
 /* Cipher 08 */
 	{
 	1,
Index: ssl_ciph.c
===================================================================
RCS file: /cvsroot/basesrc/crypto/dist/openssl/ssl/ssl_ciph.c,v
retrieving revision 1.3
diff -u -r1.3 ssl_ciph.c
--- ssl_ciph.c	2001/04/12 07:49:29	1.3
+++ ssl_ciph.c	2002/06/07 14:59:28
@@ -119,7 +119,9 @@
 	{0,SSL_TXT_3DES,0,SSL_3DES,  0,0,0,0,SSL_ENC_MASK,0},
 	{0,SSL_TXT_RC4,	0,SSL_RC4,   0,0,0,0,SSL_ENC_MASK,0},
 	{0,SSL_TXT_RC2,	0,SSL_RC2,   0,0,0,0,SSL_ENC_MASK,0},
+#if 0
 	{0,SSL_TXT_IDEA,0,SSL_IDEA,  0,0,0,0,SSL_ENC_MASK,0},
+#endif
 	{0,SSL_TXT_eNULL,0,SSL_eNULL,0,0,0,0,SSL_ENC_MASK,0},
 	{0,SSL_TXT_eFZA,0,SSL_eFZA,  0,0,0,0,SSL_ENC_MASK,0},
 
@@ -158,8 +160,12 @@
 		EVP_get_cipherbyname(SN_rc4);
 	ssl_cipher_methods[SSL_ENC_RC2_IDX]= 
 		EVP_get_cipherbyname(SN_rc2_cbc);
+#if 0
 	ssl_cipher_methods[SSL_ENC_IDEA_IDX]= 
 		EVP_get_cipherbyname(SN_idea_cbc);
+#else
+	ssl_cipher_methods[SSL_ENC_IDEA_IDX] = NULL;
+#endif
 
 	ssl_digest_methods[SSL_MD_MD5_IDX]=
 		EVP_get_digestbyname(SN_md5);