Lines Matching defs:session
308 coap_session_t *session;
371 if (data->session) {
372 if (!coap_netif_available(data->session)
374 && data->session->endpoint == NULL
382 ret = (int)data->session->sock.lfunc[COAP_LAYER_TLS].l_write(data->session,
471 (const uint8_t *)&data->session->addr_info.local.addr,
472 (size_t)data->session->addr_info.local.size);
474 (const uint8_t *)&data->session->addr_info.remote.addr,
475 (size_t)data->session->addr_info.remote.size);
645 coap_session_t *session = (coap_session_t *)SSL_get_app_data(ssl);
658 coap_session_str(session), pstr, SSL_state_string_long(ssl));
663 session->dtls_event = COAP_EVENT_DTLS_ERROR;
667 /* Need to let CoAP logging know why this session is dying */
669 coap_session_str(session),
678 coap_session_str(session), pstr, SSL_state_string_long(ssl));
681 coap_session_str(session), ERR_reason_error_string(e),
692 coap_session_str(session), pstr, SSL_state_string_long(ssl));
695 coap_session_str(session), ERR_reason_error_string(e),
703 session->dtls_event = COAP_EVENT_DTLS_RENEGOTIATE;
728 coap_session_t *session = (coap_session_t *)BIO_get_data(a);
731 ret =(int)session->sock.lfunc[COAP_LAYER_TLS].l_read(session, (u_char *)out,
753 coap_session_t *session = (coap_session_t *)BIO_get_data(a);
755 ret = (int)session->sock.lfunc[COAP_LAYER_TLS].l_write(session,
766 if ((session->state == COAP_SESSION_STATE_CSM ||
767 session->state == COAP_SESSION_STATE_HANDSHAKE) &&
773 * fatal alert and closes the TCP session.
775 * of the closed TCP session, but there is still an outstanding alert
1917 coap_session_t *session = SSL_get_app_data(ssl);
1919 ((coap_openssl_context_t *)session->context->dtls_context);
1969 coap_session_str(session),
1973 coap_session_str(session),
1978 coap_session_str(session),
1990 if (!setup_data->validate_cn_call_back(cn, base_buf, length, session,
2025 coap_session_t *session;
2028 session = (coap_session_t *)SSL_get_app_data(ssl);
2029 assert(session != NULL);
2030 assert(session->context != NULL);
2031 if (session == NULL ||
2032 session->context == NULL)
2035 if ((session->psk_key) ||
2036 (session->context->spsk_setup_data.psk_info.key.s &&
2037 session->context->spsk_setup_data.psk_info.key.length)) {
2052 coap_session_str(session));
2083 if (session->psk_key) {
2084 memcpy(secret, session->psk_key->s, session->psk_key->length);
2085 *secretlen = session->psk_key->length;
2086 } else if (session->context->spsk_setup_data.psk_info.key.s &&
2087 session->context->spsk_setup_data.psk_info.key.length) {
2088 memcpy(secret, session->context->spsk_setup_data.psk_info.key.s,
2089 session->context->spsk_setup_data.psk_info.key.length);
2090 *secretlen = session->context->spsk_setup_data.psk_info.key.length;
2093 coap_session_str(session));
2124 coap_session_t *session = (coap_session_t *)SSL_get_app_data(ssl);
2126 ((coap_openssl_context_t *)session->context->dtls_context);
2147 if (session->proto == COAP_PROTO_DTLS) {
2320 coap_session_t *session;
2331 session = (coap_session_t *)SSL_get_app_data(ssl);
2332 assert(session != NULL);
2333 assert(session->context != NULL);
2334 assert(session->context->dtls_context != NULL);
2335 if (session == NULL ||
2336 session->context == NULL ||
2337 session->context->dtls_context == NULL) {
2341 dtls_context = (coap_openssl_context_t *)session->context->dtls_context;
2347 if ((session->psk_key) ||
2348 (session->context->spsk_setup_data.psk_info.key.s &&
2349 session->context->spsk_setup_data.psk_info.key.length)) {
2380 coap_session_str(session));
2427 ((coap_openssl_context_t *)session->context->dtls_context);
2480 coap_session_str(session));
2665 /* Need to set up logic to differentiate between a PSK or PKI session */
2693 /* Need to set up logic to differentiate between a PSK or PKI session */
2817 coap_dtls_new_server_session(coap_session_t *session) {
2821 coap_dtls_context_t *dtls = &((coap_openssl_context_t *)session->context->dtls_context)->dtls;
2834 SSL_set_mtu(nssl, (long)session->mtu);
2838 SSL_set_app_data(ssl, session);
2841 data->session = session;
2844 psk_hint = coap_get_session_server_psk_hint(session);
2881 setup_client_ssl_session(coap_session_t *session, SSL *ssl
2884 ((coap_openssl_context_t *)session->context->dtls_context);
2887 coap_dtls_cpsk_t *setup_data = &session->cpsk_setup_data;
2901 if (session->proto == COAP_PROTO_DTLS) {
2918 if (session->proto == COAP_PROTO_TLS)
2957 coap_dtls_new_client_session(coap_session_t *session) {
2962 coap_openssl_context_t *context = ((coap_openssl_context_t *)session->context->dtls_context);
2972 data->session = session;
2974 SSL_set_app_data(ssl, session);
2976 SSL_set_mtu(ssl, (long)session->mtu);
2978 if (!setup_client_ssl_session(session, ssl))
2981 session->dtls_timeout_count = 0;
2993 session->tls = ssl;
3003 coap_dtls_session_update_mtu(coap_session_t *session) {
3004 SSL *ssl = (SSL *)session->tls;
3006 SSL_set_mtu(ssl, (long)session->mtu);
3011 coap_dtls_free_session(coap_session_t *session) {
3012 SSL *ssl = (SSL *)session->tls;
3020 session->tls = NULL;
3021 if (session->context)
3022 coap_handle_event(session->context, COAP_EVENT_DTLS_CLOSED, session);
3027 coap_dtls_send(coap_session_t *session,
3030 SSL *ssl = (SSL *)session->tls;
3034 session->dtls_event = -1;
3044 session->dtls_event = COAP_EVENT_DTLS_CLOSED;
3046 session->dtls_event = COAP_EVENT_DTLS_ERROR;
3051 if (session->dtls_event >= 0) {
3053 if (session->dtls_event != COAP_EVENT_DTLS_CLOSED)
3054 coap_handle_event(session->context, session->dtls_event, session);
3055 if (session->dtls_event == COAP_EVENT_DTLS_ERROR ||
3056 session->dtls_event == COAP_EVENT_DTLS_CLOSED) {
3057 coap_session_disconnected(session, COAP_NACK_TLS_FAILED);
3065 coap_session_str(session), r);
3068 coap_session_str(session), r, data_len);
3085 coap_dtls_get_timeout(coap_session_t *session, coap_tick_t now COAP_UNUSED) {
3086 SSL *ssl = (SSL *)session->tls;
3089 assert(ssl != NULL && session->state == COAP_SESSION_STATE_HANDSHAKE);
3099 coap_dtls_handle_timeout(coap_session_t *session) {
3100 SSL *ssl = (SSL *)session->tls;
3102 assert(ssl != NULL && session->state == COAP_SESSION_STATE_HANDSHAKE);
3103 if ((++session->dtls_timeout_count > session->max_retransmit) ||
3106 coap_session_disconnected(session, COAP_NACK_TLS_FAILED);
3114 coap_dtls_hello(coap_session_t *session,
3116 coap_dtls_context_t *dtls = &((coap_openssl_context_t *)session->context->dtls_context)->dtls;
3120 SSL_set_mtu(dtls->ssl, (long)session->mtu);
3125 coap_session_str(session), ssl_data->pdu_len);
3127 ssl_data->session = session;
3152 coap_dtls_receive(coap_session_t *session, const uint8_t *data, size_t data_len) {
3154 SSL *ssl = (SSL *)session->tls;
3166 coap_session_str(session), ssl_data->pdu_len);
3171 session->dtls_event = -1;
3174 r = coap_handle_dgram(session->context, session, pdu, (size_t)r);
3181 coap_session_str(session), SSL_get_cipher_name(ssl));
3182 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3183 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3188 session->dtls_event = COAP_EVENT_DTLS_CLOSED;
3190 session->dtls_event = COAP_EVENT_DTLS_ERROR;
3193 if (session->dtls_event >= 0) {
3195 if (session->dtls_event != COAP_EVENT_DTLS_CLOSED)
3196 coap_handle_event(session->context, session->dtls_event, session);
3197 if (session->dtls_event == COAP_EVENT_DTLS_ERROR ||
3198 session->dtls_event == COAP_EVENT_DTLS_CLOSED) {
3199 coap_session_disconnected(session, COAP_NACK_TLS_FAILED);
3215 coap_session_str(session), r);
3221 coap_dtls_get_overhead(coap_session_t *session) {
3224 if (session->tls != NULL)
3225 s_ciph = SSL_get_current_cipher(session->tls);
3280 coap_tls_new_client_session(coap_session_t *session) {
3284 coap_openssl_context_t *context = ((coap_openssl_context_t *)session->context->dtls_context);
3293 BIO_set_data(bio, session);
3295 SSL_set_app_data(ssl, session);
3297 if (!setup_client_ssl_session(session, ssl))
3306 session->sock.flags |= COAP_SOCKET_WANT_READ;
3308 session->sock.flags |= COAP_SOCKET_WANT_WRITE;
3310 coap_epoll_ctl_mod(&session->sock,
3312 ((session->sock.flags & COAP_SOCKET_WANT_READ) ?
3322 session->tls = ssl;
3324 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3325 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3339 coap_tls_new_server_session(coap_session_t *session) {
3342 coap_tls_context_t *tls = &((coap_openssl_context_t *)session->context->dtls_context)->tls;
3352 BIO_set_data(bio, session);
3354 SSL_set_app_data(ssl, session);
3356 psk_hint = coap_get_session_server_psk_hint(session);
3376 session->sock.flags |= COAP_SOCKET_WANT_READ;
3378 session->sock.flags |= COAP_SOCKET_WANT_WRITE;
3380 coap_epoll_ctl_mod(&session->sock,
3382 ((session->sock.flags & COAP_SOCKET_WANT_READ) ?
3392 session->tls = ssl;
3394 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3395 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3408 coap_tls_free_session(coap_session_t *session) {
3409 SSL *ssl = (SSL *)session->tls;
3417 session->tls = NULL;
3418 if (session->context)
3419 coap_handle_event(session->context, COAP_EVENT_DTLS_CLOSED, session);
3429 coap_tls_write(coap_session_t *session, const uint8_t *data, size_t data_len) {
3430 SSL *ssl = (SSL *)session->tls;
3437 session->dtls_event = -1;
3445 coap_session_str(session), SSL_get_cipher_name(ssl));
3446 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3447 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3450 session->sock.flags |= COAP_SOCKET_WANT_READ;
3452 session->sock.flags |= COAP_SOCKET_WANT_WRITE;
3454 coap_epoll_ctl_mod(&session->sock,
3456 ((session->sock.flags & COAP_SOCKET_WANT_READ) ?
3464 coap_session_str(session));
3466 session->dtls_event = COAP_EVENT_DTLS_CLOSED;
3468 session->dtls_event = COAP_EVENT_DTLS_ERROR;
3473 coap_session_str(session), SSL_get_cipher_name(ssl));
3474 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3475 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3478 if (session->dtls_event >= 0) {
3480 if (session->dtls_event != COAP_EVENT_DTLS_CLOSED)
3481 coap_handle_event(session->context, session->dtls_event, session);
3482 if (session->dtls_event == COAP_EVENT_DTLS_ERROR ||
3483 session->dtls_event == COAP_EVENT_DTLS_CLOSED) {
3484 coap_session_disconnected(session, COAP_NACK_TLS_FAILED);
3492 coap_session_str(session), r);
3495 coap_session_str(session), r, data_len);
3506 coap_tls_read(coap_session_t *session, uint8_t *data, size_t data_len) {
3507 SSL *ssl = (SSL *)session->tls;
3516 session->dtls_event = -1;
3523 coap_session_str(session), SSL_get_cipher_name(ssl));
3524 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3525 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3528 session->sock.flags |= COAP_SOCKET_WANT_READ;
3530 session->sock.flags |= COAP_SOCKET_WANT_WRITE;
3532 coap_epoll_ctl_mod(&session->sock,
3534 ((session->sock.flags & COAP_SOCKET_WANT_READ) ?
3542 session->dtls_event = COAP_EVENT_DTLS_CLOSED;
3544 session->dtls_event = COAP_EVENT_DTLS_ERROR;
3549 coap_session_str(session), SSL_get_cipher_name(ssl));
3550 coap_handle_event(session->context, COAP_EVENT_DTLS_CONNECTED, session);
3551 session->sock.lfunc[COAP_LAYER_TLS].l_establish(session);
3554 if (session->dtls_event >= 0) {
3556 if (session->dtls_event != COAP_EVENT_DTLS_CLOSED)
3557 coap_handle_event(session->context, session->dtls_event, session);
3558 if (session->dtls_event == COAP_EVENT_DTLS_ERROR ||
3559 session->dtls_event == COAP_EVENT_DTLS_CLOSED) {
3560 coap_session_disconnected(session, COAP_NACK_TLS_FAILED);
3567 coap_session_str(session), r);