use generalise mac API for SSL key generation
[openssl.git] / ssl / dtls1.h
index 177e55cd9f143fc9541f7b9da2bfa1656a04d81f..2900d1d8ae85fd22303ae48b316f4295740c5c6f 100644 (file)
 
 #include <openssl/buffer.h>
 #include <openssl/pqueue.h>
+#ifdef OPENSSL_SYS_VMS
+#include <resource.h>
+#include <sys/timeb.h>
+#endif
+#ifdef OPENSSL_SYS_WIN32
+/* Needed for struct timeval */
+#include <winsock.h>
+#elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
+#include <sys/timeval.h>
+#else
+#include <sys/time.h>
+#endif
 
 #ifdef  __cplusplus
 extern "C" {
@@ -76,7 +88,7 @@ extern "C" {
 #endif
 
 /* lengths of messages */
-#define DTLS1_COOKIE_LENGTH                     32
+#define DTLS1_COOKIE_LENGTH                     256
 
 #define DTLS1_RT_HEADER_LENGTH                  13
 
@@ -155,6 +167,7 @@ typedef struct hm_fragment_st
        {
        struct hm_header_st msg_header;
        unsigned char *fragment;
+       unsigned char *reassembly;
        } hm_fragment;
 
 typedef struct dtls1_state_st
@@ -204,7 +217,10 @@ typedef struct dtls1_state_st
         */
        record_pqueue buffered_app_data;
 
-       unsigned int mtu; /* max wire packet size */
+       /* Is set when listening for new connections with dtls1_listen() */
+       unsigned int listen;
+
+       unsigned int mtu; /* max DTLS packet size */
 
        struct hm_header_st w_msg_hdr;
        struct hm_header_st r_msg_hdr;
@@ -225,6 +241,7 @@ typedef struct dtls1_state_st
        unsigned int handshake_fragment_len;
 
        unsigned int retransmitting;
+       unsigned int change_cipher_spec_ok;
 
        } DTLS1_STATE;