Small bugfixes to the KSSL implementation.
[openssl.git] / ssl / ssl3.h
index 8fd6951d7776708c28635a5175fc0c612d11536b..796dcbc52875e8fa344ad862e5a5837365d1b1b3 100644 (file)
  * Hudson (tjh@cryptsoft.com).
  *
  */
+/* ====================================================================
+ * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
+ * ECC cipher suite support in OpenSSL originally developed by 
+ * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
+ */
 
 #ifndef HEADER_SSL3_H 
 #define HEADER_SSL3_H 
@@ -156,23 +161,29 @@ extern "C" {
 
 #define SSL3_CK_FZA_DMS_NULL_SHA               0x0300001C
 #define SSL3_CK_FZA_DMS_FZA_SHA                        0x0300001D
+#if 0 /* Because it clashes with KRB5, is never used any more, and is safe
+        to remove according to David Hopwood <david.hopwood@zetnet.co.uk>
+        of the ietf-tls list */
 #define SSL3_CK_FZA_DMS_RC4_SHA                        0x0300001E
+#endif
 
 /*    VRS Additional Kerberos5 entries
  */
-#define SSL3_CK_KRB5_DES_40_CBC_SHA            0x03000021
-#define SSL3_CK_KRB5_DES_40_CBC_MD5            0x03000022
-#define SSL3_CK_KRB5_DES_64_CBC_SHA            0x03000023
-#define SSL3_CK_KRB5_DES_64_CBC_MD5            0x03000024
-#define SSL3_CK_KRB5_DES_192_CBC3_SHA          0x03000025
-#define SSL3_CK_KRB5_DES_192_CBC3_MD5          0x03000026
-
-#define SSL3_TXT_KRB5_DES_40_CBC_SHA           "EXP-KRB5-DES-CBC-SHA"
-#define SSL3_TXT_KRB5_DES_40_CBC_MD5           "EXP-KRB5-DES-CBC-MD5"
-#define SSL3_TXT_KRB5_DES_64_CBC_SHA           "KRB5-DES-CBC-SHA"
-#define SSL3_TXT_KRB5_DES_64_CBC_MD5           "KRB5-DES-CBC-MD5"
-#define SSL3_TXT_KRB5_DES_192_CBC3_SHA         "KRB5-DES-CBC3-SHA"
-#define SSL3_TXT_KRB5_DES_192_CBC3_MD5         "KRB5-DES-CBC3-MD5"
+#define SSL3_CK_KRB5_DES_64_CBC_SHA            0x0300001E
+#define SSL3_CK_KRB5_DES_192_CBC3_SHA          0x0300001F
+#define SSL3_CK_KRB5_RC4_128_SHA               0x03000020
+#define SSL3_CK_KRB5_IDEA_128_CBC_SHA          0x03000021
+#define SSL3_CK_KRB5_DES_64_CBC_MD5            0x03000022
+#define SSL3_CK_KRB5_DES_192_CBC3_MD5          0x03000023
+#define SSL3_CK_KRB5_RC4_128_MD5               0x03000024
+#define SSL3_CK_KRB5_IDEA_128_CBC_MD5          0x03000025
+
+#define SSL3_CK_KRB5_DES_40_CBC_SHA            0x03000026
+#define SSL3_CK_KRB5_RC2_40_CBC_SHA            0x03000027
+#define SSL3_CK_KRB5_RC4_40_SHA                        0x03000028
+#define SSL3_CK_KRB5_DES_40_CBC_MD5            0x03000029
+#define SSL3_CK_KRB5_RC2_40_CBC_MD5            0x0300002A
+#define SSL3_CK_KRB5_RC4_40_MD5                        0x0300002B
 
 #define SSL3_TXT_RSA_NULL_MD5                  "NULL-MD5"
 #define SSL3_TXT_RSA_NULL_SHA                  "NULL-SHA"
@@ -209,6 +220,22 @@ extern "C" {
 #define SSL3_TXT_FZA_DMS_FZA_SHA               "FZA-FZA-CBC-SHA"
 #define SSL3_TXT_FZA_DMS_RC4_SHA               "FZA-RC4-SHA"
 
+#define SSL3_TXT_KRB5_DES_64_CBC_SHA           "KRB5-DES-CBC-SHA"
+#define SSL3_TXT_KRB5_DES_192_CBC3_SHA         "KRB5-DES-CBC3-SHA"
+#define SSL3_TXT_KRB5_RC4_128_SHA              "KRB5-RC4-SHA"
+#define SSL3_TXT_KRB5_IDEA_128_CBC_SHA         "KRB5-IDEA-CBC-SHA"
+#define SSL3_TXT_KRB5_DES_64_CBC_MD5           "KRB5-DES-CBC-MD5"
+#define SSL3_TXT_KRB5_DES_192_CBC3_MD5         "KRB5-DES-CBC3-MD5"
+#define SSL3_TXT_KRB5_RC4_128_MD5              "KRB5-RC4-MD5"
+#define SSL3_TXT_KRB5_IDEA_128_CBC_MD5                 "KRB5-IDEA-CBC-MD5"
+
+#define SSL3_TXT_KRB5_DES_40_CBC_SHA           "EXP-KRB5-DES-CBC-SHA"
+#define SSL3_TXT_KRB5_RC2_40_CBC_SHA           "EXP-KRB5-RC2-CBC-SHA"
+#define SSL3_TXT_KRB5_RC4_40_SHA               "EXP-KRB5-RC4-SHA"
+#define SSL3_TXT_KRB5_DES_40_CBC_MD5           "EXP-KRB5-DES-CBC-MD5"
+#define SSL3_TXT_KRB5_RC2_40_CBC_MD5           "EXP-KRB5-RC2-CBC-MD5"
+#define SSL3_TXT_KRB5_RC4_40_MD5               "EXP-KRB5-RC4-MD5"
+
 #define SSL3_SSL_SESSION_ID_LENGTH             32
 #define SSL3_MAX_SSL_SESSION_ID_LENGTH         32
 
@@ -285,7 +312,12 @@ typedef struct ssl3_buffer_st
 #define SSL3_CT_RSA_EPHEMERAL_DH               5
 #define SSL3_CT_DSS_EPHEMERAL_DH               6
 #define SSL3_CT_FORTEZZA_DMS                   20
-#define SSL3_CT_NUMBER                         7
+/* SSL3_CT_NUMBER is used to size arrays and it must be large
+ * enough to contain all of the cert types defined either for
+ * SSLv3 and TLSv1.
+ */
+#define SSL3_CT_NUMBER                 7
+
 
 #define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS      0x0001
 #define SSL3_FLAGS_DELAY_CLIENT_FINISHED       0x0002
@@ -370,6 +402,11 @@ typedef struct ssl3_state_st
 #ifndef OPENSSL_NO_DH
                DH *dh;
 #endif
+
+#ifndef OPENSSL_NO_ECDH
+               EC_KEY *ecdh; /* holds short lived ECDH key */
+#endif
+
                /* used when SSL_ST_FLUSH_DATA is entered */
                int next_state;