54 #define DTLS_VERSION 0xfeff
56 #define DTLS_VERSION 0xfefd
71 #define DTLS_COOKIE_SECRET_LENGTH 12
158 const unsigned char *desc,
size_t desc_len,
159 unsigned char *result,
size_t result_length);
216 const unsigned char *other_pub_x,
217 const unsigned char *other_pub_y,
232 struct etimer retransmit_timer;
258 #define dtls_set_app_data(CTX,DATA) ((CTX)->app = (DATA))
259 #define dtls_get_app_data(CTX) ((CTX)->app)
310 uint8 *buf,
size_t len);
323 #define DTLS_COOKIE_LENGTH 16
325 #define DTLS_CT_CHANGE_CIPHER_SPEC 20
326 #define DTLS_CT_ALERT 21
327 #define DTLS_CT_HANDSHAKE 22
328 #define DTLS_CT_APPLICATION_DATA 23
342 #define DTLS_HT_HELLO_REQUEST 0
343 #define DTLS_HT_CLIENT_HELLO 1
344 #define DTLS_HT_SERVER_HELLO 2
345 #define DTLS_HT_HELLO_VERIFY_REQUEST 3
346 #define DTLS_HT_CERTIFICATE 11
347 #define DTLS_HT_SERVER_KEY_EXCHANGE 12
348 #define DTLS_HT_CERTIFICATE_REQUEST 13
349 #define DTLS_HT_SERVER_HELLO_DONE 14
350 #define DTLS_HT_CERTIFICATE_VERIFY 15
351 #define DTLS_HT_CLIENT_KEY_EXCHANGE 16
352 #define DTLS_HT_FINISHED 20
368 unsigned char random[28];
404 uint8 *msg,
int msglen);
unsigned char cookie_secret[DTLS_COOKIE_SECRET_LENGTH]
void dtls_free_context(dtls_context_t *ctx)
const unsigned char * priv_key
Wrappers for list structures and functions.
dtls_context_t * dtls_new_context(void *app_data)
dtls_peer_t * dtls_get_peer(const dtls_context_t *context, const session_t *session)
clock_time_t cookie_secret_age
static void dtls_set_handler(dtls_context_t *ctx, dtls_handler_t *h)
information about peers in a DTLS session
struct __attribute__((__packed__))
struct dtls_ecdsa_key_t dtls_ecdsa_key_t
unsigned char readbuf[DTLS_MAX_BUF]
const unsigned char * pub_key_y
struct dtls_context_t dtls_context_t
const unsigned char * pub_key_x
int dtls_connect(dtls_context_t *ctx, const session_t *dst)
int dtls_handle_message(dtls_context_t *ctx, session_t *session, uint8 *msg, int msglen)
void dtls_check_retransmit(dtls_context_t *context, clock_time_t *next)
state information for DTLS FSM
int dtls_renegotiate(dtls_context_t *ctx, const session_t *dst)
int dtls_close(dtls_context_t *ctx, const session_t *remote)
#define DTLS_COOKIE_SECRET_LENGTH
int dtls_connect_peer(dtls_context_t *ctx, dtls_peer_t *peer)
int dtls_write(struct dtls_context_t *ctx, session_t *session, uint8 *buf, size_t len)