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