39#include "dtls-support.h"
40#include "lib/random.h"
45#define LOG_MODULE "dtls"
46#define LOG_LEVEL LOG_LEVEL_DTLS
50static dtls_context_t the_dtls_context;
51static dtls_cipher_context_t cipher_context;
52static uint8_t lock_context = 0;
55dtls_context_acquire(
void)
61 LOG_DBG(
"Allocated context\n");
62 return &the_dtls_context;
66dtls_context_release(dtls_context_t *
context)
68 if(
context == &the_dtls_context) {
73dtls_cipher_context_t *
74dtls_cipher_context_acquire(
void)
76 return &cipher_context;
80dtls_cipher_context_release(dtls_cipher_context_t *c)
85dtls_ticks(dtls_tick_t *t)
91dtls_fill_random(uint8_t *buf,
size_t len)
95 for(i = 0; i < len; i++) {
108dtls_retransmit_callback(
void *ptr)
117 dtls_check_retransmit(ctx, &next, 0);
122 next <= now ? 1 : next - now,
123 dtls_retransmit_callback, ctx);
128dtls_set_retransmit_timer(dtls_context_t *ctx,
unsigned int timeout)
130 ctimer_set(&ctx->support.retransmit_timer, timeout,
131 dtls_retransmit_callback, ctx);
135dtls_session_init(session_t *sess)
137 memset(sess, 0,
sizeof(session_t));
141dtls_session_equals(
const session_t *a,
const session_t *b)
143 coap_endpoint_t *e1 = (coap_endpoint_t *)a;
144 coap_endpoint_t *e2 = (coap_endpoint_t *)b;
146 if(LOG_DBG_ENABLED) {
147 LOG_DBG(
" **** EP:");
158dtls_session_get_address(
const session_t *a)
164int dtls_session_get_address_size(
const session_t *a)
167 return sizeof(session_t);
171dtls_session_print(
const session_t *a)
177dtls_session_log(
const session_t *a)
183dtls_support_init(
void)
clock_time_t clock_time(void)
Get the current clock time.
unsigned short random_rand(void)
Generates a new random number using the cc2538 RNG.
int coap_endpoint_cmp(const coap_endpoint_t *e1, const coap_endpoint_t *e2)
Compare two CoAP endpoints.
void coap_endpoint_log(const coap_endpoint_t *ep)
Print a CoAP endpoint via the logging module.
void coap_endpoint_print(const coap_endpoint_t *ep)
Print a CoAP endpoint.
void ctimer_set(struct ctimer *c, clock_time_t t, void(*f)(void *), void *ptr)
Set a callback timer.
static struct sicslowpan_addr_context * context
Addresses contexts for IPHC.