Lines Matching refs:ss
29 __owur static int sess_timedout(time_t t, SSL_SESSION *ss) in DEFINE_STACK_OF()
32 if (ss->timeout_ovf) in DEFINE_STACK_OF()
34 return t > ss->calc_timeout; in DEFINE_STACK_OF()
60 void ssl_session_calculate_timeout(SSL_SESSION *ss) in ssl_session_calculate_timeout() argument
63 if (ss->timeout < 0) in ssl_session_calculate_timeout()
64 ss->timeout = 0; in ssl_session_calculate_timeout()
65 ss->calc_timeout = ss->time + ss->timeout; in ssl_session_calculate_timeout()
70 ss->timeout_ovf = ss->time > 0 && ss->calc_timeout < ss->time; in ssl_session_calculate_timeout()
124 SSL_SESSION *ss; in SSL_SESSION_new() local
129 ss = OPENSSL_zalloc(sizeof(*ss)); in SSL_SESSION_new()
130 if (ss == NULL) { in SSL_SESSION_new()
135 ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ in SSL_SESSION_new()
136 ss->references = 1; in SSL_SESSION_new()
137 ss->timeout = 60 * 5 + 4; /* 5 minute timeout by default */ in SSL_SESSION_new()
138 ss->time = time(NULL); in SSL_SESSION_new()
139 ssl_session_calculate_timeout(ss); in SSL_SESSION_new()
140 ss->lock = CRYPTO_THREAD_lock_new(); in SSL_SESSION_new()
141 if (ss->lock == NULL) { in SSL_SESSION_new()
143 OPENSSL_free(ss); in SSL_SESSION_new()
147 if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data)) { in SSL_SESSION_new()
148 CRYPTO_THREAD_lock_free(ss->lock); in SSL_SESSION_new()
149 OPENSSL_free(ss); in SSL_SESSION_new()
152 return ss; in SSL_SESSION_new()
338 int ssl_generate_session_id(SSL *s, SSL_SESSION *ss) in ssl_generate_session_id() argument
352 ss->session_id_length = SSL3_SSL_SESSION_ID_LENGTH; in ssl_generate_session_id()
375 ss->session_id_length = 0; in ssl_generate_session_id()
395 memset(ss->session_id, 0, ss->session_id_length); in ssl_generate_session_id()
396 tmp = (int)ss->session_id_length; in ssl_generate_session_id()
397 if (!cb(s, ss->session_id, &tmp)) { in ssl_generate_session_id()
407 if (tmp == 0 || tmp > ss->session_id_length) { in ssl_generate_session_id()
413 ss->session_id_length = tmp; in ssl_generate_session_id()
415 if (SSL_has_matching_session_id(s, ss->session_id, in ssl_generate_session_id()
416 (unsigned int)ss->session_id_length)) { in ssl_generate_session_id()
428 SSL_SESSION *ss = NULL; in ssl_get_new_session() local
430 if ((ss = SSL_SESSION_new()) == NULL) { in ssl_get_new_session()
437 ss->timeout = SSL_get_default_timeout(s); in ssl_get_new_session()
439 ss->timeout = s->session_ctx->session_timeout; in ssl_get_new_session()
440 ssl_session_calculate_timeout(ss); in ssl_get_new_session()
451 ss->session_id_length = 0; in ssl_get_new_session()
452 } else if (!ssl_generate_session_id(s, ss)) { in ssl_get_new_session()
454 SSL_SESSION_free(ss); in ssl_get_new_session()
459 ss->session_id_length = 0; in ssl_get_new_session()
462 if (s->sid_ctx_length > sizeof(ss->sid_ctx)) { in ssl_get_new_session()
464 SSL_SESSION_free(ss); in ssl_get_new_session()
467 memcpy(ss->sid_ctx, s->sid_ctx, s->sid_ctx_length); in ssl_get_new_session()
468 ss->sid_ctx_length = s->sid_ctx_length; in ssl_get_new_session()
469 s->session = ss; in ssl_get_new_session()
470 ss->ssl_version = s->version; in ssl_get_new_session()
471 ss->verify_result = X509_V_OK; in ssl_get_new_session()
475 ss->flags |= SSL_SESS_FLAG_EXTMS; in ssl_get_new_session()
814 void SSL_SESSION_free(SSL_SESSION *ss) in SSL_SESSION_free() argument
818 if (ss == NULL) in SSL_SESSION_free()
820 CRYPTO_DOWN_REF(&ss->references, &i, ss->lock); in SSL_SESSION_free()
821 REF_PRINT_COUNT("SSL_SESSION", ss); in SSL_SESSION_free()
826 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); in SSL_SESSION_free()
828 OPENSSL_cleanse(ss->master_key, sizeof(ss->master_key)); in SSL_SESSION_free()
829 OPENSSL_cleanse(ss->session_id, sizeof(ss->session_id)); in SSL_SESSION_free()
830 X509_free(ss->peer); in SSL_SESSION_free()
831 sk_X509_pop_free(ss->peer_chain, X509_free); in SSL_SESSION_free()
832 OPENSSL_free(ss->ext.hostname); in SSL_SESSION_free()
833 OPENSSL_free(ss->ext.tick); in SSL_SESSION_free()
835 OPENSSL_free(ss->psk_identity_hint); in SSL_SESSION_free()
836 OPENSSL_free(ss->psk_identity); in SSL_SESSION_free()
839 OPENSSL_free(ss->srp_username); in SSL_SESSION_free()
841 OPENSSL_free(ss->ext.alpn_selected); in SSL_SESSION_free()
842 OPENSSL_free(ss->ticket_appdata); in SSL_SESSION_free()
843 CRYPTO_THREAD_lock_free(ss->lock); in SSL_SESSION_free()
844 OPENSSL_clear_free(ss, sizeof(*ss)); in SSL_SESSION_free()
847 int SSL_SESSION_up_ref(SSL_SESSION *ss) in SSL_SESSION_up_ref() argument
851 if (CRYPTO_UP_REF(&ss->references, &i, ss->lock) <= 0) in SSL_SESSION_up_ref()
854 REF_PRINT_COUNT("SSL_SESSION", ss); in SSL_SESSION_up_ref()
1348 int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len) in SSL_SESSION_set1_ticket_appdata() argument
1350 OPENSSL_free(ss->ticket_appdata); in SSL_SESSION_set1_ticket_appdata()
1351 ss->ticket_appdata_len = 0; in SSL_SESSION_set1_ticket_appdata()
1353 ss->ticket_appdata = NULL; in SSL_SESSION_set1_ticket_appdata()
1356 ss->ticket_appdata = OPENSSL_memdup(data, len); in SSL_SESSION_set1_ticket_appdata()
1357 if (ss->ticket_appdata != NULL) { in SSL_SESSION_set1_ticket_appdata()
1358 ss->ticket_appdata_len = len; in SSL_SESSION_set1_ticket_appdata()
1364 int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len) in SSL_SESSION_get0_ticket_appdata() argument
1366 *data = ss->ticket_appdata; in SSL_SESSION_get0_ticket_appdata()
1367 *len = ss->ticket_appdata_len; in SSL_SESSION_get0_ticket_appdata()