Mention more GCC bugs in ./PROBLEMS.
[oweals/openssl.git] / ssl / ssl3.h
index b829791abd7397c871e966c60b82a625dc7dcec4..1e762f276e5bc09c1d61a25ce77ece3bb9a8b58c 100644 (file)
 #include <openssl/buffer.h>
 #include <openssl/evp.h>
 #include <openssl/ssl.h>
+#include <openssl/pq_compat.h>
 
 #ifdef  __cplusplus
 extern "C" {
@@ -233,7 +234,7 @@ extern "C" {
 #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_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
@@ -294,6 +295,8 @@ typedef struct ssl3_record_st
 /*rw*/ unsigned char *data;    /* pointer to the record data */
 /*rw*/ unsigned char *input;   /* where the decode bytes are */
 /*r */ unsigned char *comp;    /* only used with decompression - malloc()ed */
+/*r */  unsigned long epoch;    /* epoch number, needed by DTLS1 */
+/*r */  PQ_64BIT seq_num;       /* sequence number, needed by DTLS1 */
        } SSL3_RECORD;
 
 typedef struct ssl3_buffer_st
@@ -435,6 +438,7 @@ typedef struct ssl3_state_st
 
        } SSL3_STATE;
 
+
 /* SSLv3 */
 /*client */
 /* extra state */
@@ -445,6 +449,8 @@ typedef struct ssl3_state_st
 /* read from server */
 #define SSL3_ST_CR_SRVR_HELLO_A                (0x120|SSL_ST_CONNECT)
 #define SSL3_ST_CR_SRVR_HELLO_B                (0x121|SSL_ST_CONNECT)
+#define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A (0x126|SSL_ST_CONNECT)
+#define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B (0x127|SSL_ST_CONNECT)
 #define SSL3_ST_CR_CERT_A              (0x130|SSL_ST_CONNECT)
 #define SSL3_ST_CR_CERT_B              (0x131|SSL_ST_CONNECT)
 #define SSL3_ST_CR_KEY_EXCH_A          (0x140|SSL_ST_CONNECT)
@@ -481,6 +487,8 @@ typedef struct ssl3_state_st
 #define SSL3_ST_SR_CLNT_HELLO_B                (0x111|SSL_ST_ACCEPT)
 #define SSL3_ST_SR_CLNT_HELLO_C                (0x112|SSL_ST_ACCEPT)
 /* write to client */
+#define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A (0x113|SSL_ST_ACCEPT)
+#define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B (0x114|SSL_ST_ACCEPT)
 #define SSL3_ST_SW_HELLO_REQ_A         (0x120|SSL_ST_ACCEPT)
 #define SSL3_ST_SW_HELLO_REQ_B         (0x121|SSL_ST_ACCEPT)
 #define SSL3_ST_SW_HELLO_REQ_C         (0x122|SSL_ST_ACCEPT)
@@ -521,6 +529,8 @@ typedef struct ssl3_state_st
 #define SSL3_MT_CERTIFICATE_VERIFY             15
 #define SSL3_MT_CLIENT_KEY_EXCHANGE            16
 #define SSL3_MT_FINISHED                       20
+#define DTLS1_MT_HELLO_VERIFY_REQUEST    3
+
 
 #define SSL3_MT_CCS                            1