Lines Matching defs:g_env
26 * g_env A coap_gnutls_env_t * (held in c_session->tls)
446 const coap_gnutls_env_t *g_env = (const coap_gnutls_env_t *)c_session->tls;
448 return g_env->g_session;
780 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
931 if (!g_env->sent_alert) {
933 g_env->sent_alert = 1;
1459 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
1521 g_env->sent_alert = 1;
1540 g_env->sent_alert = 1;
1546 G_CHECK(gnutls_credentials_set(g_env->g_session, GNUTLS_CRD_PSK,
1573 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
1634 g_env->sent_alert = 1;
1654 g_env->sent_alert = 1;
1660 G_CHECK(gnutls_credentials_set(g_env->g_session, GNUTLS_CRD_CERTIFICATE,
1680 setup_client_ssl_session(coap_session_t *c_session, coap_gnutls_env_t *g_env) {
1688 G_CHECK(gnutls_psk_allocate_client_credentials(&g_env->psk_cl_credentials),
1690 gnutls_psk_set_client_credentials_function(g_env->psk_cl_credentials,
1692 G_CHECK(gnutls_credentials_set(g_env->g_session, GNUTLS_CRD_PSK,
1693 g_env->psk_cl_credentials),
1697 G_CHECK(gnutls_server_name_set(g_env->g_session, GNUTLS_NAME_DNS,
1715 ret = gnutls_priority_set_direct(g_env->g_session,
1735 G_CHECK(setup_pki_credentials(&g_env->pki_credentials, g_env->g_session,
1740 G_CHECK(gnutls_credentials_set(g_env->g_session, GNUTLS_CRD_CERTIFICATE,
1741 g_env->pki_credentials),
1745 G_CHECK(gnutls_alpn_set_protocols(g_env->g_session,
1751 G_CHECK(gnutls_server_name_set(g_env->g_session, GNUTLS_NAME_DNS,
1826 setup_server_ssl_session(coap_session_t *c_session, coap_gnutls_env_t *g_env) {
1834 &g_env->psk_sv_credentials,
1838 G_CHECK(gnutls_credentials_set(g_env->g_session,
1840 g_env->psk_sv_credentials),
1842 gnutls_handshake_set_post_client_hello_function(g_env->g_session,
1848 G_CHECK(setup_pki_credentials(&g_env->pki_credentials, g_env->g_session,
1854 gnutls_certificate_server_set_request(g_env->g_session,
1857 gnutls_certificate_server_set_request(g_env->g_session,
1860 gnutls_certificate_server_set_request(g_env->g_session,
1864 gnutls_handshake_set_post_client_hello_function(g_env->g_session,
1867 G_CHECK(gnutls_credentials_set(g_env->g_session, GNUTLS_CRD_CERTIFICATE,
1868 g_env->pki_credentials),
1968 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
1971 if (c_session->proto == COAP_PROTO_DTLS && g_env &&
1972 g_env->coap_ssl_data.pdu_len > 0) {
1980 if (!(g_env && g_env->doing_dtls_timeout)) {
1997 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2005 if (g_env)
2006 return g_env;
2008 g_env = gnutls_malloc(sizeof(coap_gnutls_env_t));
2009 if (!g_env)
2012 memset(g_env, 0, sizeof(coap_gnutls_env_t));
2014 G_CHECK(gnutls_init(&g_env->g_session, flags), "gnutls_init");
2016 gnutls_transport_set_pull_function(g_env->g_session, coap_dgram_read);
2017 gnutls_transport_set_push_function(g_env->g_session, coap_dgram_write);
2018 gnutls_transport_set_pull_timeout_function(g_env->g_session, receive_timeout);
2020 gnutls_transport_set_ptr(g_env->g_session, c_session);
2022 G_CHECK(gnutls_priority_set(g_env->g_session, g_context->priority_cache),
2027 G_CHECK(setup_server_ssl_session(c_session, g_env),
2034 G_CHECK(setup_client_ssl_session(c_session, g_env),
2041 gnutls_handshake_set_timeout(g_env->g_session,
2043 gnutls_dtls_set_timeouts(g_env->g_session, COAP_DTLS_RETRANSMIT_MS,
2046 return g_env;
2049 if (g_env)
2050 gnutls_free(g_env);
2056 coap_gnutls_env_t *g_env,
2058 if (g_env) {
2062 if (free_bye != COAP_FREE_BYE_NONE && !g_env->sent_alert) {
2064 gnutls_bye(g_env->g_session, free_bye == COAP_FREE_BYE_AS_UDP ?
2067 gnutls_deinit(g_env->g_session);
2068 g_env->g_session = NULL;
2071 g_env->psk_cl_credentials != NULL) {
2072 gnutls_psk_free_client_credentials(g_env->psk_cl_credentials);
2073 g_env->psk_cl_credentials = NULL;
2076 if (g_env->psk_sv_credentials != NULL)
2077 gnutls_psk_free_server_credentials(g_env->psk_sv_credentials);
2078 g_env->psk_sv_credentials = NULL;
2084 gnutls_certificate_free_credentials(g_env->pki_credentials);
2085 g_env->pki_credentials = NULL;
2087 gnutls_free(g_env->coap_ssl_data.cookie_key.data);
2088 gnutls_free(g_env);
2095 coap_gnutls_env_t *g_env =
2098 gnutls_transport_set_ptr(g_env->g_session, c_session);
2100 return g_env;
2130 do_gnutls_handshake(coap_session_t *c_session, coap_gnutls_env_t *g_env) {
2133 ret = gnutls_handshake(g_env->g_session);
2136 g_env->established = 1;
2155 g_env->sent_alert = 1;
2156 log_last_alert(c_session, g_env->g_session);
2164 log_last_alert(c_session, g_env->g_session);
2174 G_ACTION(gnutls_alert_send(g_env->g_session, GNUTLS_AL_FATAL,
2176 g_env->sent_alert = 1;
2184 G_ACTION(gnutls_alert_send(g_env->g_session, GNUTLS_AL_FATAL,
2186 g_env->sent_alert = 1;
2191 if (g_env->sent_alert) {
2203 if (!g_env->sent_alert) {
2204 G_ACTION(gnutls_alert_send(g_env->g_session, GNUTLS_AL_FATAL,
2206 g_env->sent_alert = 1;
2232 coap_gnutls_env_t *g_env = coap_dtls_new_gnutls_env(c_session, GNUTLS_CLIENT);
2235 if (g_env) {
2236 ret = do_gnutls_handshake(c_session, g_env);
2239 g_env,
2245 return g_env;
2263 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2266 if (g_env)
2267 G_CHECK(gnutls_dtls_set_data_mtu(g_env->g_session,
2283 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2285 assert(g_env != NULL);
2288 if (g_env->established) {
2289 ret = gnutls_record_send(g_env->g_session, data, data_len);
2298 g_env->sent_alert = 1;
2299 log_last_alert(c_session, g_env->g_session);
2315 ret = do_gnutls_handshake(c_session, g_env);
2355 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2358 if (g_env && g_env->g_session) {
2359 unsigned int rem_ms = gnutls_dtls_get_timeout(g_env->g_session);
2368 if (g_env->last_timeout + COAP_DTLS_RETRANSMIT_COAP_TICKS > now)
2369 return g_env->last_timeout + COAP_DTLS_RETRANSMIT_COAP_TICKS;
2372 g_env->last_timeout = now;
2385 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2387 assert(g_env != NULL && c_session->state == COAP_SESSION_STATE_HANDSHAKE);
2388 g_env->doing_dtls_timeout = 1;
2390 (do_gnutls_handshake(c_session, g_env) < 0)) {
2392 g_env->doing_dtls_timeout = 0;
2396 g_env->doing_dtls_timeout = 0;
2409 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2411 coap_ssl_t *ssl_data = &g_env->coap_ssl_data;
2415 assert(g_env != NULL);
2424 if (g_env->established) {
2428 gnutls_transport_set_ptr(g_env->g_session, c_session);
2431 ret = gnutls_record_recv(g_env->g_session, pdu, (int)sizeof(pdu));
2440 g_env->sent_alert = 1;
2441 log_last_alert(c_session, g_env->g_session);
2446 log_last_alert(c_session, g_env->g_session);
2457 ret = do_gnutls_handshake(c_session, g_env);
2462 if (ssl_data->pdu_len && !g_env->sent_alert) {
2464 ret = do_gnutls_handshake(c_session, g_env);
2508 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2512 if (!g_env) {
2513 g_env = coap_dtls_new_gnutls_env(c_session, GNUTLS_SERVER);
2514 if (g_env) {
2515 c_session->tls = g_env;
2516 gnutls_key_generate(&g_env->coap_ssl_data.cookie_key,
2530 ret = gnutls_dtls_cookie_verify(&g_env->coap_ssl_data.cookie_key,
2537 gnutls_dtls_cookie_send(&g_env->coap_ssl_data.cookie_key,
2545 gnutls_dtls_prestate_set(g_env->g_session, &prestate);
2548 ssl_data = &g_env->coap_ssl_data;
2552 ret = do_gnutls_handshake(c_session, g_env);
2555 * as the above failed, need to remove g_env to clean up any
2559 g_env, COAP_FREE_BYE_NONE);
2651 coap_gnutls_env_t *g_env = gnutls_malloc(sizeof(coap_gnutls_env_t));
2661 if (!g_env) {
2664 memset(g_env, 0, sizeof(coap_gnutls_env_t));
2666 G_CHECK(gnutls_init(&g_env->g_session, flags), "gnutls_init");
2668 gnutls_transport_set_pull_function(g_env->g_session, coap_sock_read);
2669 gnutls_transport_set_push_function(g_env->g_session, coap_sock_write);
2670 gnutls_transport_set_pull_timeout_function(g_env->g_session, receive_timeout);
2672 gnutls_transport_set_ptr(g_env->g_session, c_session);
2674 gnutls_priority_set(g_env->g_session, g_context->priority_cache);
2675 setup_client_ssl_session(c_session, g_env);
2677 gnutls_handshake_set_timeout(g_env->g_session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
2679 c_session->tls = g_env;
2680 ret = do_gnutls_handshake(c_session, g_env);
2685 return g_env;
2688 if (g_env)
2689 gnutls_free(g_env);
2697 coap_gnutls_env_t *g_env = gnutls_malloc(sizeof(coap_gnutls_env_t));
2707 if (!g_env)
2709 memset(g_env, 0, sizeof(coap_gnutls_env_t));
2711 G_CHECK(gnutls_init(&g_env->g_session, flags), "gnutls_init");
2713 gnutls_transport_set_pull_function(g_env->g_session, coap_sock_read);
2714 gnutls_transport_set_push_function(g_env->g_session, coap_sock_write);
2715 gnutls_transport_set_pull_timeout_function(g_env->g_session, receive_timeout);
2717 gnutls_transport_set_ptr(g_env->g_session, c_session);
2719 setup_server_ssl_session(c_session, g_env);
2721 gnutls_priority_set(g_env->g_session, g_context->priority_cache);
2722 gnutls_handshake_set_timeout(g_env->g_session,
2725 c_session->tls = g_env;
2726 ret = do_gnutls_handshake(c_session, g_env);
2731 return g_env;
2753 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2755 assert(g_env != NULL);
2758 if (g_env->established) {
2759 ret = gnutls_record_send(g_env->g_session, data, data_len);
2773 g_env->sent_alert = 1;
2774 log_last_alert(c_session, g_env->g_session);
2789 ret = do_gnutls_handshake(c_session, g_env);
2829 coap_gnutls_env_t *g_env = (coap_gnutls_env_t *)c_session->tls;
2832 if (!g_env) {
2838 if (!g_env->established && !g_env->sent_alert) {
2839 ret = do_gnutls_handshake(c_session, g_env);
2847 if (c_session->state != COAP_SESSION_STATE_NONE && g_env->established) {
2848 ret = gnutls_record_recv(g_env->g_session, data, (int)data_len);
2863 g_env->sent_alert = 1;
2864 log_last_alert(c_session, g_env->g_session);
2868 log_last_alert(c_session, g_env->g_session);