projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Provisional DTLS 1.2 support.
[openssl.git]
/
ssl
/
dtls1.h
diff --git
a/ssl/dtls1.h
b/ssl/dtls1.h
index c4d3a75111a6c0256dccf1644767c39292c76525..715749ae2719df401d7c33071aa5fd0304b2edad 100644
(file)
--- a/
ssl/dtls1.h
+++ b/
ssl/dtls1.h
@@
-57,19
+57,27
@@
*
*/
*
*/
-#ifndef HEADER_DTLS1_H
-#define HEADER_DTLS1_H
+#ifndef HEADER_DTLS1_H
+#define HEADER_DTLS1_H
#include <openssl/buffer.h>
#include <openssl/pqueue.h>
#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
#ifdef OPENSSL_SYS_WIN32
/* Needed for struct timeval */
#include <winsock.h>
#elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
#include <sys/timeval.h>
#else
+#if defined(OPENSSL_SYS_VXWORKS)
+#include <sys/times.h>
+#else
#include <sys/time.h>
#endif
#include <sys/time.h>
#endif
+#endif
#ifdef __cplusplus
extern "C" {
#ifdef __cplusplus
extern "C" {
@@
-77,6
+85,7
@@
extern "C" {
#define DTLS1_VERSION 0xFEFF
#define DTLS1_BAD_VER 0x0100
#define DTLS1_VERSION 0xFEFF
#define DTLS1_BAD_VER 0x0100
+#define DTLS1_2_VERSION 0xFEFD
#if 0
/* this alert description is not specified anywhere... */
#if 0
/* this alert description is not specified anywhere... */
@@
-101,6
+110,11
@@
extern "C" {
#define DTLS1_AL_HEADER_LENGTH 2
#endif
#define DTLS1_AL_HEADER_LENGTH 2
#endif
+#ifndef OPENSSL_NO_SSL_INTERN
+
+#ifndef OPENSSL_NO_SCTP
+#define DTLS1_SCTP_AUTH_LABEL "EXPORTER_DTLS_OVER_SCTP"
+#endif
typedef struct dtls1_bitmap_st
{
typedef struct dtls1_bitmap_st
{
@@
-163,6
+177,7
@@
typedef struct hm_fragment_st
{
struct hm_header_st msg_header;
unsigned char *fragment;
{
struct hm_header_st msg_header;
unsigned char *fragment;
+ unsigned char *reassembly;
} hm_fragment;
typedef struct dtls1_state_st
} hm_fragment;
typedef struct dtls1_state_st
@@
-222,7
+237,7
@@
typedef struct dtls1_state_st
struct dtls1_timeout_st timeout;
struct dtls1_timeout_st timeout;
- /* Indicates when the last handshake msg sent will timeout */
+ /* Indicates when the last handshake msg
or heartbeat
sent will timeout */
struct timeval next_timeout;
/* Timeout duration */
struct timeval next_timeout;
/* Timeout duration */
@@
-238,6
+253,13
@@
typedef struct dtls1_state_st
unsigned int retransmitting;
unsigned int change_cipher_spec_ok;
unsigned int retransmitting;
unsigned int change_cipher_spec_ok;
+#ifndef OPENSSL_NO_SCTP
+ /* used when SSL_ST_XX_FLUSH is entered */
+ int next_state;
+
+ int shutdown_received;
+#endif
+
} DTLS1_STATE;
typedef struct dtls1_record_data_st
} DTLS1_STATE;
typedef struct dtls1_record_data_st
@@
-246,8
+268,12
@@
typedef struct dtls1_record_data_st
unsigned int packet_length;
SSL3_BUFFER rbuf;
SSL3_RECORD rrec;
unsigned int packet_length;
SSL3_BUFFER rbuf;
SSL3_RECORD rrec;
+#ifndef OPENSSL_NO_SCTP
+ struct bio_dgram_sctp_rcvinfo recordinfo;
+#endif
} DTLS1_RECORD_DATA;
} DTLS1_RECORD_DATA;
+#endif
/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */
#define DTLS1_TMO_READ_COUNT 2
/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */
#define DTLS1_TMO_READ_COUNT 2