Index: openssl/ssl/s3_lib.c |
=================================================================== |
--- openssl/ssl/s3_lib.c (revision 105093) |
+++ openssl/ssl/s3_lib.c (working copy) |
@@ -56,7 +56,7 @@ |
* [including the GNU Public Licence.] |
*/ |
/* ==================================================================== |
- * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. |
+ * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
@@ -121,16 +121,46 @@ |
* Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. |
* |
*/ |
+/* ==================================================================== |
+ * Copyright 2005 Nokia. All rights reserved. |
+ * |
+ * The portions of the attached software ("Contribution") is developed by |
+ * Nokia Corporation and is licensed pursuant to the OpenSSL open source |
+ * license. |
+ * |
+ * The Contribution, originally written by Mika Kousa and Pasi Eronen of |
+ * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites |
+ * support (see RFC 4279) to OpenSSL. |
+ * |
+ * No patent licenses or other rights except those expressly stated in |
+ * the OpenSSL open source license shall be deemed granted or received |
+ * expressly, by implication, estoppel, or otherwise. |
+ * |
+ * No assurances are provided by Nokia that the Contribution does not |
+ * infringe the patent or other intellectual property rights of any third |
+ * party or that the license provides you with all the necessary rights |
+ * to make use of the Contribution. |
+ * |
+ * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN |
+ * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA |
+ * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY |
+ * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR |
+ * OTHERWISE. |
+ */ |
#include <stdio.h> |
#include <openssl/objects.h> |
#include "ssl_locl.h" |
#include "kssl_lcl.h" |
+#ifndef OPENSSL_NO_TLSEXT |
+#ifndef OPENSSL_NO_EC |
+#include "../crypto/ec/ec_lcl.h" |
+#endif /* OPENSSL_NO_EC */ |
+#endif /* OPENSSL_NO_TLSEXT */ |
#include <openssl/md5.h> |
#ifndef OPENSSL_NO_DH |
#include <openssl/dh.h> |
#endif |
-#include <openssl/pq_compat.h> |
const char ssl3_version_str[]="SSLv3" OPENSSL_VERSION_PTEXT; |
@@ -138,217 +168,265 @@ |
/* list of available SSLv3 ciphers (sorted by id) */ |
OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
+ |
/* The RSA ciphers */ |
/* Cipher 01 */ |
{ |
1, |
SSL3_TXT_RSA_NULL_MD5, |
SSL3_CK_RSA_NULL_MD5, |
- SSL_kRSA|SSL_aRSA|SSL_eNULL |SSL_MD5|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_eNULL, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
0, |
0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 02 */ |
{ |
1, |
SSL3_TXT_RSA_NULL_SHA, |
SSL3_CK_RSA_NULL_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_eNULL |SSL_SHA1|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
0, |
0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 03 */ |
{ |
1, |
SSL3_TXT_RSA_RC4_40_MD5, |
SSL3_CK_RSA_RC4_40_MD5, |
- SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_MD5 |SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 04 */ |
{ |
1, |
SSL3_TXT_RSA_RC4_128_MD5, |
SSL3_CK_RSA_RC4_128_MD5, |
- SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_MD5|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 05 */ |
{ |
1, |
SSL3_TXT_RSA_RC4_128_SHA, |
SSL3_CK_RSA_RC4_128_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_SHA1|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 06 */ |
{ |
1, |
SSL3_TXT_RSA_RC2_40_MD5, |
SSL3_CK_RSA_RC2_40_MD5, |
- SSL_kRSA|SSL_aRSA|SSL_RC2 |SSL_MD5 |SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC2, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 07 */ |
#ifndef OPENSSL_NO_IDEA |
{ |
1, |
SSL3_TXT_RSA_IDEA_128_SHA, |
SSL3_CK_RSA_IDEA_128_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_IDEA |SSL_SHA1|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_IDEA, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
#endif |
+ |
/* Cipher 08 */ |
{ |
1, |
SSL3_TXT_RSA_DES_40_CBC_SHA, |
SSL3_CK_RSA_DES_40_CBC_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 09 */ |
{ |
1, |
SSL3_TXT_RSA_DES_64_CBC_SHA, |
SSL3_CK_RSA_DES_64_CBC_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 0A */ |
{ |
1, |
SSL3_TXT_RSA_DES_192_CBC3_SHA, |
SSL3_CK_RSA_DES_192_CBC3_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* The DH ciphers */ |
/* Cipher 0B */ |
{ |
0, |
SSL3_TXT_DH_DSS_DES_40_CBC_SHA, |
SSL3_CK_DH_DSS_DES_40_CBC_SHA, |
- SSL_kDHd |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 0C */ |
{ |
- 0, |
+ 0, /* not implemented (non-ephemeral DH) */ |
SSL3_TXT_DH_DSS_DES_64_CBC_SHA, |
SSL3_CK_DH_DSS_DES_64_CBC_SHA, |
- SSL_kDHd |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 0D */ |
{ |
- 0, |
+ 0, /* not implemented (non-ephemeral DH) */ |
SSL3_TXT_DH_DSS_DES_192_CBC3_SHA, |
SSL3_CK_DH_DSS_DES_192_CBC3_SHA, |
- SSL_kDHd |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 0E */ |
{ |
- 0, |
+ 0, /* not implemented (non-ephemeral DH) */ |
SSL3_TXT_DH_RSA_DES_40_CBC_SHA, |
SSL3_CK_DH_RSA_DES_40_CBC_SHA, |
- SSL_kDHr |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 0F */ |
{ |
- 0, |
+ 0, /* not implemented (non-ephemeral DH) */ |
SSL3_TXT_DH_RSA_DES_64_CBC_SHA, |
SSL3_CK_DH_RSA_DES_64_CBC_SHA, |
- SSL_kDHr |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 10 */ |
{ |
- 0, |
+ 0, /* not implemented (non-ephemeral DH) */ |
SSL3_TXT_DH_RSA_DES_192_CBC3_SHA, |
SSL3_CK_DH_RSA_DES_192_CBC3_SHA, |
- SSL_kDHr |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* The Ephemeral DH ciphers */ |
@@ -357,158 +435,193 @@ |
1, |
SSL3_TXT_EDH_DSS_DES_40_CBC_SHA, |
SSL3_CK_EDH_DSS_DES_40_CBC_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 12 */ |
{ |
1, |
SSL3_TXT_EDH_DSS_DES_64_CBC_SHA, |
SSL3_CK_EDH_DSS_DES_64_CBC_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 13 */ |
{ |
1, |
SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA, |
SSL3_CK_EDH_DSS_DES_192_CBC3_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_3DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 14 */ |
{ |
1, |
SSL3_TXT_EDH_RSA_DES_40_CBC_SHA, |
SSL3_CK_EDH_RSA_DES_40_CBC_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 15 */ |
{ |
1, |
SSL3_TXT_EDH_RSA_DES_64_CBC_SHA, |
SSL3_CK_EDH_RSA_DES_64_CBC_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 16 */ |
{ |
1, |
SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA, |
SSL3_CK_EDH_RSA_DES_192_CBC3_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 17 */ |
{ |
1, |
SSL3_TXT_ADH_RC4_40_MD5, |
SSL3_CK_ADH_RC4_40_MD5, |
- SSL_kEDH |SSL_aNULL|SSL_RC4 |SSL_MD5 |SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 18 */ |
{ |
1, |
SSL3_TXT_ADH_RC4_128_MD5, |
SSL3_CK_ADH_RC4_128_MD5, |
- SSL_kEDH |SSL_aNULL|SSL_RC4 |SSL_MD5 |SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 19 */ |
{ |
1, |
SSL3_TXT_ADH_DES_40_CBC_SHA, |
SSL3_CK_ADH_DES_40_CBC_SHA, |
- SSL_kEDH |SSL_aNULL|SSL_DES|SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 1A */ |
{ |
1, |
SSL3_TXT_ADH_DES_64_CBC_SHA, |
SSL3_CK_ADH_DES_64_CBC_SHA, |
- SSL_kEDH |SSL_aNULL|SSL_DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 1B */ |
{ |
1, |
SSL3_TXT_ADH_DES_192_CBC_SHA, |
SSL3_CK_ADH_DES_192_CBC_SHA, |
- SSL_kEDH |SSL_aNULL|SSL_3DES |SSL_SHA1|SSL_SSLV3, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
-/* Fortezza */ |
+/* Fortezza ciphersuite from SSL 3.0 spec */ |
+#if 0 |
/* Cipher 1C */ |
{ |
0, |
SSL3_TXT_FZA_DMS_NULL_SHA, |
SSL3_CK_FZA_DMS_NULL_SHA, |
- SSL_kFZA|SSL_aFZA |SSL_eNULL |SSL_SHA1|SSL_SSLV3, |
+ SSL_kFZA, |
+ SSL_aFZA, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
0, |
0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 1D */ |
@@ -516,45 +629,50 @@ |
0, |
SSL3_TXT_FZA_DMS_FZA_SHA, |
SSL3_CK_FZA_DMS_FZA_SHA, |
- SSL_kFZA|SSL_aFZA |SSL_eFZA |SSL_SHA1|SSL_SSLV3, |
+ SSL_kFZA, |
+ SSL_aFZA, |
+ SSL_eFZA, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
0, |
0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
-#if 0 |
/* Cipher 1E */ |
{ |
0, |
SSL3_TXT_FZA_DMS_RC4_SHA, |
SSL3_CK_FZA_DMS_RC4_SHA, |
- SSL_kFZA|SSL_aFZA |SSL_RC4 |SSL_SHA1|SSL_SSLV3, |
+ SSL_kFZA, |
+ SSL_aFZA, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
#endif |
#ifndef OPENSSL_NO_KRB5 |
-/* The Kerberos ciphers */ |
+/* The Kerberos ciphers*/ |
/* Cipher 1E */ |
{ |
1, |
SSL3_TXT_KRB5_DES_64_CBC_SHA, |
SSL3_CK_KRB5_DES_64_CBC_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 1F */ |
@@ -562,13 +680,15 @@ |
1, |
SSL3_TXT_KRB5_DES_192_CBC3_SHA, |
SSL3_CK_KRB5_DES_192_CBC3_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_3DES|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 20 */ |
@@ -576,13 +696,15 @@ |
1, |
SSL3_TXT_KRB5_RC4_128_SHA, |
SSL3_CK_KRB5_RC4_128_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_RC4|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 21 */ |
@@ -590,13 +712,15 @@ |
1, |
SSL3_TXT_KRB5_IDEA_128_CBC_SHA, |
SSL3_CK_KRB5_IDEA_128_CBC_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_IDEA|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_IDEA, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 22 */ |
@@ -604,13 +728,15 @@ |
1, |
SSL3_TXT_KRB5_DES_64_CBC_MD5, |
SSL3_CK_KRB5_DES_64_CBC_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_DES, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_LOW, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
56, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 23 */ |
@@ -618,13 +744,15 @@ |
1, |
SSL3_TXT_KRB5_DES_192_CBC3_MD5, |
SSL3_CK_KRB5_DES_192_CBC3_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_3DES|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_3DES, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
168, |
168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 24 */ |
@@ -632,13 +760,15 @@ |
1, |
SSL3_TXT_KRB5_RC4_128_MD5, |
SSL3_CK_KRB5_RC4_128_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_RC4|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 25 */ |
@@ -646,13 +776,15 @@ |
1, |
SSL3_TXT_KRB5_IDEA_128_CBC_MD5, |
SSL3_CK_KRB5_IDEA_128_CBC_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_IDEA|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_IDEA, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 26 */ |
@@ -660,13 +792,15 @@ |
1, |
SSL3_TXT_KRB5_DES_40_CBC_SHA, |
SSL3_CK_KRB5_DES_40_CBC_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 27 */ |
@@ -674,13 +808,15 @@ |
1, |
SSL3_TXT_KRB5_RC2_40_CBC_SHA, |
SSL3_CK_KRB5_RC2_40_CBC_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_RC2|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_RC2, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 28 */ |
@@ -688,13 +824,15 @@ |
1, |
SSL3_TXT_KRB5_RC4_40_SHA, |
SSL3_CK_KRB5_RC4_40_SHA, |
- SSL_kKRB5|SSL_aKRB5| SSL_RC4|SSL_SHA1 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 29 */ |
@@ -702,13 +840,15 @@ |
1, |
SSL3_TXT_KRB5_DES_40_CBC_MD5, |
SSL3_CK_KRB5_DES_40_CBC_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_DES, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 2A */ |
@@ -716,13 +856,15 @@ |
1, |
SSL3_TXT_KRB5_RC2_40_CBC_MD5, |
SSL3_CK_KRB5_RC2_40_CBC_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_RC2|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_RC2, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 2B */ |
@@ -730,13 +872,15 @@ |
1, |
SSL3_TXT_KRB5_RC4_40_MD5, |
SSL3_CK_KRB5_RC4_40_MD5, |
- SSL_kKRB5|SSL_aKRB5| SSL_RC4|SSL_MD5 |SSL_SSLV3, |
+ SSL_kKRB5, |
+ SSL_aKRB5, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_SSLV3, |
SSL_EXPORT|SSL_EXP40, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
40, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
#endif /* OPENSSL_NO_KRB5 */ |
@@ -746,78 +890,90 @@ |
1, |
TLS1_TXT_RSA_WITH_AES_128_SHA, |
TLS1_CK_RSA_WITH_AES_128_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_AES|SSL_SHA |SSL_TLSV1, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 30 */ |
{ |
0, |
TLS1_TXT_DH_DSS_WITH_AES_128_SHA, |
TLS1_CK_DH_DSS_WITH_AES_128_SHA, |
- SSL_kDHd|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 31 */ |
{ |
0, |
TLS1_TXT_DH_RSA_WITH_AES_128_SHA, |
TLS1_CK_DH_RSA_WITH_AES_128_SHA, |
- SSL_kDHr|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 32 */ |
{ |
1, |
TLS1_TXT_DHE_DSS_WITH_AES_128_SHA, |
TLS1_CK_DHE_DSS_WITH_AES_128_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 33 */ |
{ |
1, |
TLS1_TXT_DHE_RSA_WITH_AES_128_SHA, |
TLS1_CK_DHE_RSA_WITH_AES_128_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 34 */ |
{ |
1, |
TLS1_TXT_ADH_WITH_AES_128_SHA, |
TLS1_CK_ADH_WITH_AES_128_SHA, |
- SSL_kEDH|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 35 */ |
@@ -825,78 +981,94 @@ |
1, |
TLS1_TXT_RSA_WITH_AES_256_SHA, |
TLS1_CK_RSA_WITH_AES_256_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_AES|SSL_SHA |SSL_TLSV1, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 36 */ |
{ |
0, |
TLS1_TXT_DH_DSS_WITH_AES_256_SHA, |
TLS1_CK_DH_DSS_WITH_AES_256_SHA, |
- SSL_kDHd|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 37 */ |
{ |
- 0, |
+ 0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_RSA_WITH_AES_256_SHA, |
TLS1_CK_DH_RSA_WITH_AES_256_SHA, |
- SSL_kDHr|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 38 */ |
{ |
1, |
TLS1_TXT_DHE_DSS_WITH_AES_256_SHA, |
TLS1_CK_DHE_DSS_WITH_AES_256_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 39 */ |
{ |
1, |
TLS1_TXT_DHE_RSA_WITH_AES_256_SHA, |
TLS1_CK_DHE_RSA_WITH_AES_256_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
+ |
/* Cipher 3A */ |
{ |
1, |
TLS1_TXT_ADH_WITH_AES_256_SHA, |
TLS1_CK_ADH_WITH_AES_256_SHA, |
- SSL_kEDH|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
#ifndef OPENSSL_NO_CAMELLIA |
@@ -907,78 +1079,95 @@ |
1, |
TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA, |
TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_CAMELLIA128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 42 */ |
{ |
0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, |
TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, |
- SSL_kDHd|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_CAMELLIA128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 43 */ |
{ |
0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, |
TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, |
- SSL_kDHr|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_CAMELLIA128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 44 */ |
{ |
1, |
TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, |
TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_CAMELLIA128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 45 */ |
{ |
1, |
TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, |
TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_CAMELLIA128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 46 */ |
{ |
1, |
TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA, |
TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA, |
- SSL_kEDH|SSL_aNULL|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_CAMELLIA128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
#endif /* OPENSSL_NO_CAMELLIA */ |
@@ -986,98 +1175,174 @@ |
/* New TLS Export CipherSuites from expired ID */ |
#if 0 |
/* Cipher 60 */ |
- { |
- 1, |
- TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5, |
- TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5, |
- SSL_kRSA|SSL_aRSA|SSL_RC4|SSL_MD5|SSL_TLSV1, |
- SSL_EXPORT|SSL_EXP56, |
- 0, |
- 56, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5, |
+ TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC4, |
+ SSL_MD5, |
+ SSL_TLSV1, |
+ SSL_EXPORT|SSL_EXP56, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 56, |
+ 128, |
+ }, |
+ |
/* Cipher 61 */ |
- { |
- 1, |
- TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5, |
- TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5, |
- SSL_kRSA|SSL_aRSA|SSL_RC2|SSL_MD5|SSL_TLSV1, |
- SSL_EXPORT|SSL_EXP56, |
- 0, |
- 56, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5, |
+ TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC2, |
+ SSL_MD5, |
+ SSL_TLSV1, |
+ SSL_EXPORT|SSL_EXP56, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 56, |
+ 128, |
+ }, |
#endif |
+ |
/* Cipher 62 */ |
- { |
- 1, |
- TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA, |
- TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA|SSL_TLSV1, |
- SSL_EXPORT|SSL_EXP56, |
- 0, |
- 56, |
- 56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA, |
+ TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_EXPORT|SSL_EXP56, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 56, |
+ 56, |
+ }, |
+ |
/* Cipher 63 */ |
- { |
- 1, |
- TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, |
- TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA|SSL_TLSV1, |
- SSL_EXPORT|SSL_EXP56, |
- 0, |
- 56, |
- 56, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, |
+ TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_EXPORT|SSL_EXP56, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 56, |
+ 56, |
+ }, |
+ |
/* Cipher 64 */ |
- { |
- 1, |
- TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA, |
- TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_EXPORT|SSL_EXP56, |
- 0, |
- 56, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA, |
+ TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_EXPORT|SSL_EXP56, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 56, |
+ 128, |
+ }, |
+ |
/* Cipher 65 */ |
- { |
- 1, |
- TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, |
- TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_EXPORT|SSL_EXP56, |
- 0, |
- 56, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, |
+ TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_EXPORT|SSL_EXP56, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 56, |
+ 128, |
+ }, |
+ |
/* Cipher 66 */ |
- { |
- 1, |
- TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA, |
- TLS1_CK_DHE_DSS_WITH_RC4_128_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA, |
+ TLS1_CK_DHE_DSS_WITH_RC4_128_SHA, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
#endif |
+ { |
+ 1, |
+ "GOST94-GOST89-GOST89", |
+ 0x3000080, |
+ SSL_kGOST, |
+ SSL_aGOST94, |
+ SSL_eGOST2814789CNT, |
+ SSL_GOST89MAC, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94|TLS1_STREAM_MAC, |
+ 256, |
+ 256 |
+ }, |
+ { |
+ 1, |
+ "GOST2001-GOST89-GOST89", |
+ 0x3000081, |
+ SSL_kGOST, |
+ SSL_aGOST01, |
+ SSL_eGOST2814789CNT, |
+ SSL_GOST89MAC, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94|TLS1_STREAM_MAC, |
+ 256, |
+ 256 |
+ }, |
+ { |
+ 1, |
+ "GOST94-NULL-GOST94", |
+ 0x3000082, |
+ SSL_kGOST, |
+ SSL_aGOST94, |
+ SSL_eNULL, |
+ SSL_GOST94, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94, |
+ 0, |
+ 0 |
+ }, |
+ { |
+ 1, |
+ "GOST2001-NULL-GOST94", |
+ 0x3000083, |
+ SSL_kGOST, |
+ SSL_aGOST01, |
+ SSL_eNULL, |
+ SSL_GOST94, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94, |
+ 0, |
+ 0 |
+ }, |
#ifndef OPENSSL_NO_CAMELLIA |
/* Camellia ciphersuites from RFC4132 (256-bit portion) */ |
@@ -1087,81 +1352,163 @@ |
1, |
TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA, |
TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_CAMELLIA256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
/* Cipher 85 */ |
{ |
0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, |
TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, |
- SSL_kDHd|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_CAMELLIA256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 86 */ |
{ |
0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, |
TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, |
- SSL_kDHr|SSL_aDH|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_CAMELLIA256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 87 */ |
{ |
1, |
TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, |
TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_CAMELLIA256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 88 */ |
{ |
1, |
TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, |
TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_CAMELLIA256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
+ |
/* Cipher 89 */ |
{ |
1, |
TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA, |
TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA, |
- SSL_kEDH|SSL_aNULL|SSL_CAMELLIA|SSL_SHA|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_CAMELLIA256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_HIGH, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
256, |
256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS |
}, |
#endif /* OPENSSL_NO_CAMELLIA */ |
+#ifndef OPENSSL_NO_PSK |
+ /* Cipher 8A */ |
+ { |
+ 1, |
+ TLS1_TXT_PSK_WITH_RC4_128_SHA, |
+ TLS1_CK_PSK_WITH_RC4_128_SHA, |
+ SSL_kPSK, |
+ SSL_aPSK, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
+ |
+ /* Cipher 8B */ |
+ { |
+ 1, |
+ TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA, |
+ TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA, |
+ SSL_kPSK, |
+ SSL_aPSK, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 168, |
+ 168, |
+ }, |
+ |
+ /* Cipher 8C */ |
+ { |
+ 1, |
+ TLS1_TXT_PSK_WITH_AES_128_CBC_SHA, |
+ TLS1_CK_PSK_WITH_AES_128_CBC_SHA, |
+ SSL_kPSK, |
+ SSL_aPSK, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
+ |
+ /* Cipher 8D */ |
+ { |
+ 1, |
+ TLS1_TXT_PSK_WITH_AES_256_CBC_SHA, |
+ TLS1_CK_PSK_WITH_AES_256_CBC_SHA, |
+ SSL_kPSK, |
+ SSL_aPSK, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
+#endif /* OPENSSL_NO_PSK */ |
+ |
#ifndef OPENSSL_NO_SEED |
/* SEED ciphersuites from RFC4162 */ |
@@ -1170,13 +1517,15 @@ |
1, |
TLS1_TXT_RSA_WITH_SEED_SHA, |
TLS1_CK_RSA_WITH_SEED_SHA, |
- SSL_kRSA|SSL_aRSA|SSL_SEED|SSL_SHA1|SSL_TLSV1, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_SEED, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 97 */ |
@@ -1184,13 +1533,15 @@ |
0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_DSS_WITH_SEED_SHA, |
TLS1_CK_DH_DSS_WITH_SEED_SHA, |
- SSL_kDHd|SSL_aDH|SSL_SEED|SSL_SHA1|SSL_TLSV1, |
+ SSL_kDHd, |
+ SSL_aDH, |
+ SSL_SEED, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 98 */ |
@@ -1198,13 +1549,15 @@ |
0, /* not implemented (non-ephemeral DH) */ |
TLS1_TXT_DH_RSA_WITH_SEED_SHA, |
TLS1_CK_DH_RSA_WITH_SEED_SHA, |
- SSL_kDHr|SSL_aDH|SSL_SEED|SSL_SHA1|SSL_TLSV1, |
+ SSL_kDHr, |
+ SSL_aDH, |
+ SSL_SEED, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 99 */ |
@@ -1212,13 +1565,15 @@ |
1, |
TLS1_TXT_DHE_DSS_WITH_SEED_SHA, |
TLS1_CK_DHE_DSS_WITH_SEED_SHA, |
- SSL_kEDH|SSL_aDSS|SSL_SEED|SSL_SHA1|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aDSS, |
+ SSL_SEED, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 9A */ |
@@ -1226,13 +1581,15 @@ |
1, |
TLS1_TXT_DHE_RSA_WITH_SEED_SHA, |
TLS1_CK_DHE_RSA_WITH_SEED_SHA, |
- SSL_kEDH|SSL_aRSA|SSL_SEED|SSL_SHA1|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_SEED, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
/* Cipher 9B */ |
@@ -1240,376 +1597,487 @@ |
1, |
TLS1_TXT_ADH_WITH_SEED_SHA, |
TLS1_CK_ADH_WITH_SEED_SHA, |
- SSL_kEDH|SSL_aNULL|SSL_SEED|SSL_SHA1|SSL_TLSV1, |
+ SSL_kEDH, |
+ SSL_aNULL, |
+ SSL_SEED, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
SSL_NOT_EXP|SSL_MEDIUM, |
- 0, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
128, |
128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
}, |
#endif /* OPENSSL_NO_SEED */ |
#ifndef OPENSSL_NO_ECDH |
/* Cipher C001 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA, |
- TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA, |
- SSL_kECDH|SSL_aECDSA|SSL_eNULL|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA, |
+ TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA, |
+ SSL_kECDHe, |
+ SSL_aECDH, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 0, |
+ 0, |
+ }, |
/* Cipher C002 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA, |
- TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA, |
- SSL_kECDH|SSL_aECDSA|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA, |
+ TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA, |
+ SSL_kECDHe, |
+ SSL_aECDH, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C003 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA, |
- TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA, |
- SSL_kECDH|SSL_aECDSA|SSL_3DES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 168, |
- 168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA, |
+ TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA, |
+ SSL_kECDHe, |
+ SSL_aECDH, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 168, |
+ 168, |
+ }, |
/* Cipher C004 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA, |
- TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA, |
- SSL_kECDH|SSL_aECDSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA, |
+ TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA, |
+ SSL_kECDHe, |
+ SSL_aECDH, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C005 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA, |
- TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA, |
- SSL_kECDH|SSL_aECDSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 256, |
- 256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA, |
+ TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA, |
+ SSL_kECDHe, |
+ SSL_aECDH, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
/* Cipher C006 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA, |
- TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA, |
- SSL_kECDHE|SSL_aECDSA|SSL_eNULL|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA, |
+ TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA, |
+ SSL_kEECDH, |
+ SSL_aECDSA, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 0, |
+ 0, |
+ }, |
/* Cipher C007 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA, |
- TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA, |
- SSL_kECDHE|SSL_aECDSA|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA, |
+ TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA, |
+ SSL_kEECDH, |
+ SSL_aECDSA, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C008 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, |
- TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, |
- SSL_kECDHE|SSL_aECDSA|SSL_3DES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 168, |
- 168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, |
+ TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, |
+ SSL_kEECDH, |
+ SSL_aECDSA, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 168, |
+ 168, |
+ }, |
/* Cipher C009 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, |
- TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, |
- SSL_kECDHE|SSL_aECDSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, |
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, |
+ SSL_kEECDH, |
+ SSL_aECDSA, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C00A */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, |
- TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, |
- SSL_kECDHE|SSL_aECDSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 256, |
- 256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, |
+ TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, |
+ SSL_kEECDH, |
+ SSL_aECDSA, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
/* Cipher C00B */ |
- { |
- 1, |
- TLS1_TXT_ECDH_RSA_WITH_NULL_SHA, |
- TLS1_CK_ECDH_RSA_WITH_NULL_SHA, |
- SSL_kECDH|SSL_aRSA|SSL_eNULL|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_RSA_WITH_NULL_SHA, |
+ TLS1_CK_ECDH_RSA_WITH_NULL_SHA, |
+ SSL_kECDHr, |
+ SSL_aECDH, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 0, |
+ 0, |
+ }, |
/* Cipher C00C */ |
- { |
- 1, |
- TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA, |
- TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA, |
- SSL_kECDH|SSL_aRSA|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA, |
+ TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA, |
+ SSL_kECDHr, |
+ SSL_aECDH, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C00D */ |
- { |
- 1, |
- TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA, |
- TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA, |
- SSL_kECDH|SSL_aRSA|SSL_3DES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 168, |
- 168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA, |
+ TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA, |
+ SSL_kECDHr, |
+ SSL_aECDH, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 168, |
+ 168, |
+ }, |
/* Cipher C00E */ |
- { |
- 1, |
- TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA, |
- TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA, |
- SSL_kECDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA, |
+ TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA, |
+ SSL_kECDHr, |
+ SSL_aECDH, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C00F */ |
- { |
- 1, |
- TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA, |
- TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA, |
- SSL_kECDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 256, |
- 256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA, |
+ TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA, |
+ SSL_kECDHr, |
+ SSL_aECDH, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
/* Cipher C010 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA, |
- TLS1_CK_ECDHE_RSA_WITH_NULL_SHA, |
- SSL_kECDHE|SSL_aRSA|SSL_eNULL|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA, |
+ TLS1_CK_ECDHE_RSA_WITH_NULL_SHA, |
+ SSL_kEECDH, |
+ SSL_aRSA, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 0, |
+ 0, |
+ }, |
/* Cipher C011 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA, |
- TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA, |
- SSL_kECDHE|SSL_aRSA|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA, |
+ TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA, |
+ SSL_kEECDH, |
+ SSL_aRSA, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C012 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA, |
- TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA, |
- SSL_kECDHE|SSL_aRSA|SSL_3DES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 168, |
- 168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA, |
+ TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA, |
+ SSL_kEECDH, |
+ SSL_aRSA, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 168, |
+ 168, |
+ }, |
/* Cipher C013 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA, |
- TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA, |
- SSL_kECDHE|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA, |
+ TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA, |
+ SSL_kEECDH, |
+ SSL_aRSA, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C014 */ |
- { |
- 1, |
- TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA, |
- TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA, |
- SSL_kECDHE|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 256, |
- 256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA, |
+ TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA, |
+ SSL_kEECDH, |
+ SSL_aRSA, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
/* Cipher C015 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_anon_WITH_NULL_SHA, |
- TLS1_CK_ECDH_anon_WITH_NULL_SHA, |
- SSL_kECDHE|SSL_aNULL|SSL_eNULL|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 0, |
- 0, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_anon_WITH_NULL_SHA, |
+ TLS1_CK_ECDH_anon_WITH_NULL_SHA, |
+ SSL_kEECDH, |
+ SSL_aNULL, |
+ SSL_eNULL, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_STRONG_NONE, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 0, |
+ 0, |
+ }, |
/* Cipher C016 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA, |
- TLS1_CK_ECDH_anon_WITH_RC4_128_SHA, |
- SSL_kECDHE|SSL_aNULL|SSL_RC4|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA, |
+ TLS1_CK_ECDH_anon_WITH_RC4_128_SHA, |
+ SSL_kEECDH, |
+ SSL_aNULL, |
+ SSL_RC4, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_MEDIUM, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C017 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA, |
- TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA, |
- SSL_kECDHE|SSL_aNULL|SSL_3DES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 168, |
- 168, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA, |
+ TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA, |
+ SSL_kEECDH, |
+ SSL_aNULL, |
+ SSL_3DES, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 168, |
+ 168, |
+ }, |
/* Cipher C018 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA, |
- TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA, |
- SSL_kECDHE|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 128, |
- 128, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA, |
+ TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA, |
+ SSL_kEECDH, |
+ SSL_aNULL, |
+ SSL_AES128, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 128, |
+ 128, |
+ }, |
/* Cipher C019 */ |
- { |
- 1, |
- TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA, |
- TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA, |
- SSL_kECDHE|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1, |
- SSL_NOT_EXP|SSL_HIGH, |
- 0, |
- 256, |
- 256, |
- SSL_ALL_CIPHERS, |
- SSL_ALL_STRENGTHS, |
- }, |
+ { |
+ 1, |
+ TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA, |
+ TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA, |
+ SSL_kEECDH, |
+ SSL_aNULL, |
+ SSL_AES256, |
+ SSL_SHA1, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
#endif /* OPENSSL_NO_ECDH */ |
+#ifdef TEMP_GOST_TLS |
+/* Cipher FF00 */ |
+ { |
+ 1, |
+ "GOST-MD5", |
+ 0x0300ff00, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_eGOST2814789CNT, |
+ SSL_MD5, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256, |
+ }, |
+ { |
+ 1, |
+ "GOST-GOST94", |
+ 0x0300ff01, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_eGOST2814789CNT, |
+ SSL_GOST94, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256 |
+ }, |
+ { |
+ 1, |
+ "GOST-GOST89MAC", |
+ 0x0300ff02, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_eGOST2814789CNT, |
+ SSL_GOST89MAC, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
+ 256, |
+ 256 |
+ }, |
+ { |
+ 1, |
+ "GOST-GOST89STREAM", |
+ 0x0300ff03, |
+ SSL_kRSA, |
+ SSL_aRSA, |
+ SSL_eGOST2814789CNT, |
+ SSL_GOST89MAC, |
+ SSL_TLSV1, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF|TLS1_STREAM_MAC, |
+ 256, |
+ 256 |
+ }, |
+#endif |
/* end of list */ |
}; |
SSL3_ENC_METHOD SSLv3_enc_data={ |
ssl3_enc, |
- ssl3_mac, |
+ n_ssl3_mac, |
ssl3_setup_key_block, |
ssl3_generate_master_secret, |
ssl3_change_cipher_state, |
@@ -1628,17 +2096,12 @@ |
return(60*60*2); |
} |
-IMPLEMENT_ssl3_meth_func(sslv3_base_method, |
- ssl_undefined_function, |
- ssl_undefined_function, |
- ssl_bad_method) |
- |
int ssl3_num_ciphers(void) |
{ |
return(SSL3_NUM_CIPHERS); |
} |
-SSL_CIPHER *ssl3_get_cipher(unsigned int u) |
+const SSL_CIPHER *ssl3_get_cipher(unsigned int u) |
{ |
if (u < SSL3_NUM_CIPHERS) |
return(&(ssl3_ciphers[SSL3_NUM_CIPHERS-1-u])); |
@@ -1660,10 +2123,8 @@ |
if ((s3=OPENSSL_malloc(sizeof *s3)) == NULL) goto err; |
memset(s3,0,sizeof *s3); |
- EVP_MD_CTX_init(&s3->finish_dgst1); |
- EVP_MD_CTX_init(&s3->finish_dgst2); |
- pq_64bit_init(&(s3->rrec.seq_num)); |
- pq_64bit_init(&(s3->wrec.seq_num)); |
+ memset(s3->rrec.seq_num,0,sizeof(s3->rrec.seq_num)); |
+ memset(s3->wrec.seq_num,0,sizeof(s3->wrec.seq_num)); |
s->s3=s3; |
@@ -1678,11 +2139,18 @@ |
if(s == NULL) |
return; |
+#ifdef TLSEXT_TYPE_opaque_prf_input |
+ if (s->s3->client_opaque_prf_input != NULL) |
+ OPENSSL_free(s->s3->client_opaque_prf_input); |
+ if (s->s3->server_opaque_prf_input != NULL) |
+ OPENSSL_free(s->s3->server_opaque_prf_input); |
+#endif |
+ |
ssl3_cleanup_key_block(s); |
if (s->s3->rbuf.buf != NULL) |
- OPENSSL_free(s->s3->rbuf.buf); |
+ ssl3_release_read_buffer(s); |
if (s->s3->wbuf.buf != NULL) |
- OPENSSL_free(s->s3->wbuf.buf); |
+ ssl3_release_write_buffer(s); |
if (s->s3->rrec.comp != NULL) |
OPENSSL_free(s->s3->rrec.comp); |
#ifndef OPENSSL_NO_DH |
@@ -1696,17 +2164,10 @@ |
if (s->s3->tmp.ca_names != NULL) |
sk_X509_NAME_pop_free(s->s3->tmp.ca_names,X509_NAME_free); |
- EVP_MD_CTX_cleanup(&s->s3->finish_dgst1); |
- EVP_MD_CTX_cleanup(&s->s3->finish_dgst2); |
- pq_64bit_free(&(s->s3->rrec.seq_num)); |
- pq_64bit_free(&(s->s3->wrec.seq_num)); |
- |
- if (s->s3->snap_start_client_hello.buf) |
- { |
- /* s->s3->snap_start_records, if set, uses the same buffer */ |
- OPENSSL_free(s->s3->snap_start_client_hello.buf); |
- } |
- |
+ if (s->s3->handshake_buffer) { |
+ BIO_free(s->s3->handshake_buffer); |
+ } |
+ if (s->s3->handshake_dgst) ssl3_free_digest_list(s); |
OPENSSL_cleanse(s->s3,sizeof *s->s3); |
OPENSSL_free(s->s3); |
s->s3=NULL; |
@@ -1716,7 +2177,17 @@ |
{ |
unsigned char *rp,*wp; |
size_t rlen, wlen; |
+ int init_extra; |
+#ifdef TLSEXT_TYPE_opaque_prf_input |
+ if (s->s3->client_opaque_prf_input != NULL) |
+ OPENSSL_free(s->s3->client_opaque_prf_input); |
+ s->s3->client_opaque_prf_input = NULL; |
+ if (s->s3->server_opaque_prf_input != NULL) |
+ OPENSSL_free(s->s3->server_opaque_prf_input); |
+ s->s3->server_opaque_prf_input = NULL; |
+#endif |
+ |
ssl3_cleanup_key_block(s); |
if (s->s3->tmp.ca_names != NULL) |
sk_X509_NAME_pop_free(s->s3->tmp.ca_names,X509_NAME_free); |
@@ -1728,26 +2199,37 @@ |
} |
#ifndef OPENSSL_NO_DH |
if (s->s3->tmp.dh != NULL) |
+ { |
DH_free(s->s3->tmp.dh); |
+ s->s3->tmp.dh = NULL; |
+ } |
#endif |
#ifndef OPENSSL_NO_ECDH |
if (s->s3->tmp.ecdh != NULL) |
+ { |
EC_KEY_free(s->s3->tmp.ecdh); |
+ s->s3->tmp.ecdh = NULL; |
+ } |
#endif |
rp = s->s3->rbuf.buf; |
wp = s->s3->wbuf.buf; |
rlen = s->s3->rbuf.len; |
wlen = s->s3->wbuf.len; |
- |
- EVP_MD_CTX_cleanup(&s->s3->finish_dgst1); |
- EVP_MD_CTX_cleanup(&s->s3->finish_dgst2); |
- |
+ init_extra = s->s3->init_extra; |
+ if (s->s3->handshake_buffer) { |
+ BIO_free(s->s3->handshake_buffer); |
+ s->s3->handshake_buffer = NULL; |
+ } |
+ if (s->s3->handshake_dgst) { |
+ ssl3_free_digest_list(s); |
+ } |
memset(s->s3,0,sizeof *s->s3); |
s->s3->rbuf.buf = rp; |
s->s3->wbuf.buf = wp; |
s->s3->rbuf.len = rlen; |
s->s3->wbuf.len = wlen; |
+ s->s3->init_extra = init_extra; |
ssl_free_wbio_buffer(s); |
@@ -1758,12 +2240,13 @@ |
s->s3->in_read_app_data=0; |
s->version=SSL3_VERSION; |
-#ifndef OPENSSL_NO_TLSEXT |
- if (s->next_proto_negotiated) { |
+#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) |
+ if (s->next_proto_negotiated) |
+ { |
OPENSSL_free(s->next_proto_negotiated); |
- s->next_proto_negotiated = 0; |
+ s->next_proto_negotiated = NULL; |
s->next_proto_negotiated_len = 0; |
- } |
+ } |
#endif |
} |
@@ -1950,7 +2433,31 @@ |
s->tlsext_debug_arg=parg; |
ret = 1; |
break; |
- |
+ |
+#ifdef TLSEXT_TYPE_opaque_prf_input |
+ case SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT: |
+ if (larg > 12288) /* actual internal limit is 2^16 for the complete hello message |
+ * (including the cert chain and everything) */ |
+ { |
+ SSLerr(SSL_F_SSL3_CTRL, SSL_R_OPAQUE_PRF_INPUT_TOO_LONG); |
+ break; |
+ } |
+ if (s->tlsext_opaque_prf_input != NULL) |
+ OPENSSL_free(s->tlsext_opaque_prf_input); |
+ if ((size_t)larg == 0) |
+ s->tlsext_opaque_prf_input = OPENSSL_malloc(1); /* dummy byte just to get non-NULL */ |
+ else |
+ s->tlsext_opaque_prf_input = BUF_memdup(parg, (size_t)larg); |
+ if (s->tlsext_opaque_prf_input != NULL) |
+ { |
+ s->tlsext_opaque_prf_input_len = (size_t)larg; |
+ ret = 1; |
+ } |
+ else |
+ s->tlsext_opaque_prf_input_len = 0; |
+ break; |
+#endif |
+ |
case SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE: |
s->tlsext_status_type=larg; |
ret = 1; |
@@ -2208,13 +2715,20 @@ |
} |
return 1; |
} |
- |
+ |
+#ifdef TLSEXT_TYPE_opaque_prf_input |
+ case SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG: |
+ ctx->tlsext_opaque_prf_input_callback_arg = parg; |
+ return 1; |
+#endif |
+ |
case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG: |
ctx->tlsext_status_arg=parg; |
return 1; |
break; |
#endif /* !OPENSSL_NO_TLSEXT */ |
+ |
/* A Thawte special :-) */ |
case SSL_CTRL_EXTRA_CHAIN_CERT: |
if (ctx->extra_certs == NULL) |
@@ -2264,7 +2778,13 @@ |
case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB: |
ctx->tlsext_servername_callback=(int (*)(SSL *,int *,void *))fp; |
break; |
- |
+ |
+#ifdef TLSEXT_TYPE_opaque_prf_input |
+ case SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB: |
+ ctx->tlsext_opaque_prf_input_callback = (int (*)(SSL *,void *, size_t, void *))fp; |
+ break; |
+#endif |
+ |
case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB: |
ctx->tlsext_status_cb=(int (*)(SSL *,void *))fp; |
break; |
@@ -2285,17 +2805,15 @@ |
/* This function needs to check if the ciphers required are actually |
* available */ |
-SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p) |
+const SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p) |
{ |
- SSL_CIPHER c,*cp; |
+ SSL_CIPHER c; |
+ const SSL_CIPHER *cp; |
unsigned long id; |
id=0x03000000L|((unsigned long)p[0]<<8L)|(unsigned long)p[1]; |
c.id=id; |
- cp = (SSL_CIPHER *)OBJ_bsearch((char *)&c, |
- (char *)ssl3_ciphers, |
- SSL3_NUM_CIPHERS,sizeof(SSL_CIPHER), |
- FP_ICC ssl_cipher_id_cmp); |
+ cp = OBJ_bsearch_ssl_cipher_id(&c, ssl3_ciphers, SSL3_NUM_CIPHERS); |
if (cp == NULL || cp->valid == 0) |
return NULL; |
else |
@@ -2321,10 +2839,14 @@ |
{ |
SSL_CIPHER *c,*ret=NULL; |
STACK_OF(SSL_CIPHER) *prio, *allow; |
- int i,j,ok; |
- |
+ int i,ii,ok; |
+#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_EC) |
+ unsigned int j; |
+ int ec_ok, ec_nid; |
+ unsigned char ec_search1 = 0, ec_search2 = 0; |
+#endif |
CERT *cert; |
- unsigned long alg,mask,emask; |
+ unsigned long alg_k,alg_a,mask_k,mask_a,emask_k,emask_a; |
/* Let's see which ciphers we can support */ |
cert=s->cert; |
@@ -2340,73 +2862,237 @@ |
#endif |
#ifdef CIPHER_DEBUG |
- printf("Server has %d from %p:\n", sk_SSL_CIPHER_num(srvr), srvr); |
- for(i=0 ; i < sk_SSL_CIPHER_num(srvr) ; ++i) |
+ printf("Server has %d from %p:\n", sk_SSL_CIPHER_num(srvr), (void *)srvr); |
+ for(i=0 ; i < sk_SSL_CIPHER_num(srvr) ; ++i) |
+ { |
+ c=sk_SSL_CIPHER_value(srvr,i); |
+ printf("%p:%s\n",(void *)c,c->name); |
+ } |
+ printf("Client sent %d from %p:\n", sk_SSL_CIPHER_num(clnt), (void *)clnt); |
+ for(i=0 ; i < sk_SSL_CIPHER_num(clnt) ; ++i) |
{ |
- c=sk_SSL_CIPHER_value(srvr,i); |
- printf("%p:%s\n",c,c->name); |
- } |
- printf("Client sent %d from %p:\n", sk_SSL_CIPHER_num(clnt), clnt); |
- for(i=0 ; i < sk_SSL_CIPHER_num(clnt) ; ++i) |
- { |
c=sk_SSL_CIPHER_value(clnt,i); |
- printf("%p:%s\n",c,c->name); |
+ printf("%p:%s\n",(void *)c,c->name); |
} |
#endif |
if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) |
- { |
- prio = srvr; |
- allow = clnt; |
- } |
+ { |
+ prio = srvr; |
+ allow = clnt; |
+ } |
else |
- { |
- prio = clnt; |
- allow = srvr; |
- } |
+ { |
+ prio = clnt; |
+ allow = srvr; |
+ } |
for (i=0; i<sk_SSL_CIPHER_num(prio); i++) |
{ |
c=sk_SSL_CIPHER_value(prio,i); |
ssl_set_cert_masks(cert,c); |
- mask=cert->mask; |
- emask=cert->export_mask; |
+ mask_k = cert->mask_k; |
+ mask_a = cert->mask_a; |
+ emask_k = cert->export_mask_k; |
+ emask_a = cert->export_mask_a; |
#ifdef KSSL_DEBUG |
- printf("ssl3_choose_cipher %d alg= %lx\n", i,c->algorithms); |
+/* printf("ssl3_choose_cipher %d alg= %lx\n", i,c->algorithms);*/ |
#endif /* KSSL_DEBUG */ |
- alg=c->algorithms&(SSL_MKEY_MASK|SSL_AUTH_MASK); |
+ alg_k=c->algorithm_mkey; |
+ alg_a=c->algorithm_auth; |
+ |
#ifndef OPENSSL_NO_KRB5 |
- if (alg & SSL_KRB5) |
- { |
- if ( !kssl_keytab_is_available(s->kssl_ctx) ) |
- continue; |
- } |
+ if (alg_k & SSL_kKRB5) |
+ { |
+ if ( !kssl_keytab_is_available(s->kssl_ctx) ) |
+ continue; |
+ } |
#endif /* OPENSSL_NO_KRB5 */ |
+#ifndef OPENSSL_NO_PSK |
+ /* with PSK there must be server callback set */ |
+ if ((alg_k & SSL_kPSK) && s->psk_server_callback == NULL) |
+ continue; |
+#endif /* OPENSSL_NO_PSK */ |
+ |
if (SSL_C_IS_EXPORT(c)) |
{ |
- ok=((alg & emask) == alg)?1:0; |
+ ok = (alg_k & emask_k) && (alg_a & emask_a); |
#ifdef CIPHER_DEBUG |
- printf("%d:[%08lX:%08lX]%p:%s (export)\n",ok,alg,emask, |
- c,c->name); |
+ printf("%d:[%08lX:%08lX:%08lX:%08lX]%p:%s (export)\n",ok,alg_k,alg_a,emask_k,emask_a, |
+ (void *)c,c->name); |
#endif |
} |
else |
{ |
- ok=((alg & mask) == alg)?1:0; |
+ ok = (alg_k & mask_k) && (alg_a & mask_a); |
#ifdef CIPHER_DEBUG |
- printf("%d:[%08lX:%08lX]%p:%s\n",ok,alg,mask,c, |
+ printf("%d:[%08lX:%08lX:%08lX:%08lX]%p:%s\n",ok,alg_k,alg_a,mask_k,mask_a,(void *)c, |
c->name); |
#endif |
} |
+#ifndef OPENSSL_NO_TLSEXT |
+#ifndef OPENSSL_NO_EC |
+ if ( |
+ /* if we are considering an ECC cipher suite that uses our certificate */ |
+ (alg_a & SSL_aECDSA || alg_a & SSL_aECDH) |
+ /* and we have an ECC certificate */ |
+ && (s->cert->pkeys[SSL_PKEY_ECC].x509 != NULL) |
+ /* and the client specified a Supported Point Formats extension */ |
+ && ((s->session->tlsext_ecpointformatlist_length > 0) && (s->session->tlsext_ecpointformatlist != NULL)) |
+ /* and our certificate's point is compressed */ |
+ && ( |
+ (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info != NULL) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key != NULL) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key != NULL) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key->data != NULL) |
+ && ( |
+ (*(s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key->data) == POINT_CONVERSION_COMPRESSED) |
+ || (*(s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key->public_key->data) == POINT_CONVERSION_COMPRESSED + 1) |
+ ) |
+ ) |
+ ) |
+ { |
+ ec_ok = 0; |
+ /* if our certificate's curve is over a field type that the client does not support |
+ * then do not allow this cipher suite to be negotiated */ |
+ if ( |
+ (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec != NULL) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group != NULL) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth != NULL) |
+ && (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_prime_field) |
+ ) |
+ { |
+ for (j = 0; j < s->session->tlsext_ecpointformatlist_length; j++) |
+ { |
+ if (s->session->tlsext_ecpointformatlist[j] == TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime) |
+ { |
+ ec_ok = 1; |
+ break; |
+ } |
+ } |
+ } |
+ else if (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_characteristic_two_field) |
+ { |
+ for (j = 0; j < s->session->tlsext_ecpointformatlist_length; j++) |
+ { |
+ if (s->session->tlsext_ecpointformatlist[j] == TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2) |
+ { |
+ ec_ok = 1; |
+ break; |
+ } |
+ } |
+ } |
+ ok = ok && ec_ok; |
+ } |
+ if ( |
+ /* if we are considering an ECC cipher suite that uses our certificate */ |
+ (alg_a & SSL_aECDSA || alg_a & SSL_aECDH) |
+ /* and we have an ECC certificate */ |
+ && (s->cert->pkeys[SSL_PKEY_ECC].x509 != NULL) |
+ /* and the client specified an EllipticCurves extension */ |
+ && ((s->session->tlsext_ellipticcurvelist_length > 0) && (s->session->tlsext_ellipticcurvelist != NULL)) |
+ ) |
+ { |
+ ec_ok = 0; |
+ if ( |
+ (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec != NULL) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group != NULL) |
+ ) |
+ { |
+ ec_nid = EC_GROUP_get_curve_name(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group); |
+ if ((ec_nid == 0) |
+ && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth != NULL) |
+ ) |
+ { |
+ if (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_prime_field) |
+ { |
+ ec_search1 = 0xFF; |
+ ec_search2 = 0x01; |
+ } |
+ else if (EC_METHOD_get_field_type(s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group->meth) == NID_X9_62_characteristic_two_field) |
+ { |
+ ec_search1 = 0xFF; |
+ ec_search2 = 0x02; |
+ } |
+ } |
+ else |
+ { |
+ ec_search1 = 0x00; |
+ ec_search2 = tls1_ec_nid2curve_id(ec_nid); |
+ } |
+ if ((ec_search1 != 0) || (ec_search2 != 0)) |
+ { |
+ for (j = 0; j < s->session->tlsext_ellipticcurvelist_length / 2; j++) |
+ { |
+ if ((s->session->tlsext_ellipticcurvelist[2*j] == ec_search1) && (s->session->tlsext_ellipticcurvelist[2*j+1] == ec_search2)) |
+ { |
+ ec_ok = 1; |
+ break; |
+ } |
+ } |
+ } |
+ } |
+ ok = ok && ec_ok; |
+ } |
+ if ( |
+ /* if we are considering an ECC cipher suite that uses an ephemeral EC key */ |
+ (alg_k & SSL_kEECDH) |
+ /* and we have an ephemeral EC key */ |
+ && (s->cert->ecdh_tmp != NULL) |
+ /* and the client specified an EllipticCurves extension */ |
+ && ((s->session->tlsext_ellipticcurvelist_length > 0) && (s->session->tlsext_ellipticcurvelist != NULL)) |
+ ) |
+ { |
+ ec_ok = 0; |
+ if (s->cert->ecdh_tmp->group != NULL) |
+ { |
+ ec_nid = EC_GROUP_get_curve_name(s->cert->ecdh_tmp->group); |
+ if ((ec_nid == 0) |
+ && (s->cert->ecdh_tmp->group->meth != NULL) |
+ ) |
+ { |
+ if (EC_METHOD_get_field_type(s->cert->ecdh_tmp->group->meth) == NID_X9_62_prime_field) |
+ { |
+ ec_search1 = 0xFF; |
+ ec_search2 = 0x01; |
+ } |
+ else if (EC_METHOD_get_field_type(s->cert->ecdh_tmp->group->meth) == NID_X9_62_characteristic_two_field) |
+ { |
+ ec_search1 = 0xFF; |
+ ec_search2 = 0x02; |
+ } |
+ } |
+ else |
+ { |
+ ec_search1 = 0x00; |
+ ec_search2 = tls1_ec_nid2curve_id(ec_nid); |
+ } |
+ if ((ec_search1 != 0) || (ec_search2 != 0)) |
+ { |
+ for (j = 0; j < s->session->tlsext_ellipticcurvelist_length / 2; j++) |
+ { |
+ if ((s->session->tlsext_ellipticcurvelist[2*j] == ec_search1) && (s->session->tlsext_ellipticcurvelist[2*j+1] == ec_search2)) |
+ { |
+ ec_ok = 1; |
+ break; |
+ } |
+ } |
+ } |
+ } |
+ ok = ok && ec_ok; |
+ } |
+#endif /* OPENSSL_NO_EC */ |
+#endif /* OPENSSL_NO_TLSEXT */ |
+ |
if (!ok) continue; |
- j=sk_SSL_CIPHER_find(allow,c); |
- if (j >= 0) |
+ ii=sk_SSL_CIPHER_find(allow,c); |
+ if (ii >= 0) |
{ |
- ret=sk_SSL_CIPHER_value(allow,j); |
+ ret=sk_SSL_CIPHER_value(allow,ii); |
break; |
} |
} |
@@ -2416,12 +3102,24 @@ |
int ssl3_get_req_cert_type(SSL *s, unsigned char *p) |
{ |
int ret=0; |
- unsigned long alg; |
+ unsigned long alg_k; |
- alg=s->s3->tmp.new_cipher->algorithms; |
+ alg_k = s->s3->tmp.new_cipher->algorithm_mkey; |
+#ifndef OPENSSL_NO_GOST |
+ if (s->version >= TLS1_VERSION) |
+ { |
+ if (alg_k & SSL_kGOST) |
+ { |
+ p[ret++]=TLS_CT_GOST94_SIGN; |
+ p[ret++]=TLS_CT_GOST01_SIGN; |
+ return(ret); |
+ } |
+ } |
+#endif |
+ |
#ifndef OPENSSL_NO_DH |
- if (alg & (SSL_kDHr|SSL_kEDH)) |
+ if (alg_k & (SSL_kDHr|SSL_kEDH)) |
{ |
# ifndef OPENSSL_NO_RSA |
p[ret++]=SSL3_CT_RSA_FIXED_DH; |
@@ -2431,7 +3129,7 @@ |
# endif |
} |
if ((s->version == SSL3_VERSION) && |
- (alg & (SSL_kEDH|SSL_kDHd|SSL_kDHr))) |
+ (alg_k & (SSL_kEDH|SSL_kDHd|SSL_kDHr))) |
{ |
# ifndef OPENSSL_NO_RSA |
p[ret++]=SSL3_CT_RSA_EPHEMERAL_DH; |
@@ -2448,10 +3146,7 @@ |
p[ret++]=SSL3_CT_DSS_SIGN; |
#endif |
#ifndef OPENSSL_NO_ECDH |
- /* We should ask for fixed ECDH certificates only |
- * for SSL_kECDH (and not SSL_kECDHE) |
- */ |
- if ((alg & SSL_kECDH) && (s->version >= TLS1_VERSION)) |
+ if ((alg_k & (SSL_kECDHr|SSL_kECDHe)) && (s->version >= TLS1_VERSION)) |
{ |
p[ret++]=TLS_CT_RSA_FIXED_ECDH; |
p[ret++]=TLS_CT_ECDSA_FIXED_ECDH; |
@@ -2460,7 +3155,7 @@ |
#ifndef OPENSSL_NO_ECDSA |
/* ECDSA certs can be used with RSA cipher suites as well |
- * so we don't need to check for SSL_kECDH or SSL_kECDHE |
+ * so we don't need to check for SSL_kECDH or SSL_kEECDH |
*/ |
if (s->version >= TLS1_VERSION) |
{ |
@@ -2586,8 +3281,8 @@ |
if ((s->s3->flags & SSL3_FLAGS_POP_BUFFER) && (s->wbio == s->bbio)) |
{ |
/* Deal with an application that calls SSL_read() when handshake data |
- * is yet to be written. |
- */ |
+ * is yet to be written. |
+ */ |
if (BIO_wpending(s->wbio) > 0) |
{ |
s->rwstate=SSL_WRITING; |