Lines Matching refs:ss

29 __owur static int sess_timedout(time_t t, SSL_SESSION *ss)
32 if (ss->timeout_ovf)
34 return t > ss->calc_timeout;
78 void ssl_session_calculate_timeout(SSL_SESSION *ss)
82 CALCULATE_TIMEOUT(ss, uint64_t);
84 CALCULATE_TIMEOUT(ss, uint32_t);
139 SSL_SESSION *ss;
144 ss = OPENSSL_zalloc(sizeof(*ss));
145 if (ss == NULL) {
150 ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */
151 ss->references = 1;
152 ss->timeout = 60 * 5 + 4; /* 5 minute timeout by default */
153 ss->time = time(NULL);
154 ssl_session_calculate_timeout(ss);
155 ss->lock = CRYPTO_THREAD_lock_new();
156 if (ss->lock == NULL) {
158 OPENSSL_free(ss);
162 if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data)) {
163 CRYPTO_THREAD_lock_free(ss->lock);
164 OPENSSL_free(ss);
167 return ss;
370 int ssl_generate_session_id(SSL *s, SSL_SESSION *ss)
384 ss->session_id_length = SSL3_SSL_SESSION_ID_LENGTH;
407 ss->session_id_length = 0;
427 memset(ss->session_id, 0, ss->session_id_length);
428 tmp = (int)ss->session_id_length;
429 if (!cb(s, ss->session_id, &tmp)) {
439 if (tmp == 0 || tmp > ss->session_id_length) {
445 ss->session_id_length = tmp;
447 if (SSL_has_matching_session_id(s, ss->session_id,
448 (unsigned int)ss->session_id_length)) {
460 SSL_SESSION *ss = NULL;
462 if ((ss = SSL_SESSION_new()) == NULL) {
469 ss->timeout = SSL_get_default_timeout(s);
471 ss->timeout = s->session_ctx->session_timeout;
472 ssl_session_calculate_timeout(ss);
483 ss->session_id_length = 0;
484 } else if (!ssl_generate_session_id(s, ss)) {
486 SSL_SESSION_free(ss);
491 ss->session_id_length = 0;
494 if (s->sid_ctx_length > sizeof(ss->sid_ctx)) {
496 SSL_SESSION_free(ss);
499 memcpy(ss->sid_ctx, s->sid_ctx, s->sid_ctx_length);
500 ss->sid_ctx_length = s->sid_ctx_length;
501 s->session = ss;
502 ss->ssl_version = s->version;
503 ss->verify_result = X509_V_OK;
507 ss->flags |= SSL_SESS_FLAG_EXTMS;
857 void SSL_SESSION_free(SSL_SESSION *ss)
861 if (ss == NULL)
863 CRYPTO_DOWN_REF(&ss->references, &i, ss->lock);
864 REF_PRINT_COUNT("SSL_SESSION", ss);
869 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data);
871 OPENSSL_cleanse(ss->master_key, sizeof(ss->master_key));
872 OPENSSL_cleanse(ss->session_id, sizeof(ss->session_id));
873 X509_free(ss->peer);
874 sk_X509_pop_free(ss->peer_chain, X509_free);
875 OPENSSL_free(ss->ext.hostname);
876 OPENSSL_free(ss->ext.tick);
878 OPENSSL_free(ss->psk_identity_hint);
879 OPENSSL_free(ss->psk_identity);
882 OPENSSL_free(ss->srp_username);
884 OPENSSL_free(ss->ext.alpn_selected);
885 OPENSSL_free(ss->ticket_appdata);
886 CRYPTO_THREAD_lock_free(ss->lock);
887 OPENSSL_clear_free(ss, sizeof(*ss));
890 int SSL_SESSION_up_ref(SSL_SESSION *ss)
894 if (CRYPTO_UP_REF(&ss->references, &i, ss->lock) <= 0)
897 REF_PRINT_COUNT("SSL_SESSION", ss);
1391 int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len)
1393 OPENSSL_free(ss->ticket_appdata);
1394 ss->ticket_appdata_len = 0;
1396 ss->ticket_appdata = NULL;
1399 ss->ticket_appdata = OPENSSL_memdup(data, len);
1400 if (ss->ticket_appdata != NULL) {
1401 ss->ticket_appdata_len = len;
1407 int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len)
1409 *data = ss->ticket_appdata;
1410 *len = ss->ticket_appdata_len;