Lines Matching full:session
32 // SSL_magic_pending_session_ptr(). It allows a session callback to indicate
33 // that it needs to asynchronously fetch session information.
39 static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *session);
40 static void SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *session);
47 // Take the first four bytes of |session_id|. Session IDs are generated by the in ssl_hash_session_id()
64 UniquePtr<SSL_SESSION> SSL_SESSION_dup(SSL_SESSION *session, int dup_flags) { in SSL_SESSION_dup() argument
65 UniquePtr<SSL_SESSION> new_session = ssl_session_new(session->x509_method); in SSL_SESSION_dup()
70 new_session->is_server = session->is_server; in SSL_SESSION_dup()
71 new_session->ssl_version = session->ssl_version; in SSL_SESSION_dup()
72 new_session->is_quic = session->is_quic; in SSL_SESSION_dup()
73 new_session->sid_ctx = session->sid_ctx; in SSL_SESSION_dup()
76 new_session->secret = session->secret; in SSL_SESSION_dup()
77 new_session->cipher = session->cipher; in SSL_SESSION_dup()
80 if (session->psk_identity != nullptr) { in SSL_SESSION_dup()
82 OPENSSL_strdup(session->psk_identity.get())); in SSL_SESSION_dup()
87 if (session->certs != nullptr) { in SSL_SESSION_dup()
93 session->certs.get(), buf_up_ref, CRYPTO_BUFFER_free)); in SSL_SESSION_dup()
99 if (!session->x509_method->session_dup(new_session.get(), session)) { in SSL_SESSION_dup()
103 new_session->verify_result = session->verify_result; in SSL_SESSION_dup()
105 new_session->ocsp_response = UpRef(session->ocsp_response); in SSL_SESSION_dup()
107 UpRef(session->signed_cert_timestamp_list); in SSL_SESSION_dup()
109 OPENSSL_memcpy(new_session->peer_sha256, session->peer_sha256, in SSL_SESSION_dup()
111 new_session->peer_sha256_valid = session->peer_sha256_valid; in SSL_SESSION_dup()
113 new_session->peer_signature_algorithm = session->peer_signature_algorithm; in SSL_SESSION_dup()
115 new_session->timeout = session->timeout; in SSL_SESSION_dup()
116 new_session->auth_timeout = session->auth_timeout; in SSL_SESSION_dup()
117 new_session->time = session->time; in SSL_SESSION_dup()
121 new_session->session_id = session->session_id; in SSL_SESSION_dup()
122 new_session->group_id = session->group_id; in SSL_SESSION_dup()
123 new_session->original_handshake_hash = session->original_handshake_hash; in SSL_SESSION_dup()
124 new_session->ticket_lifetime_hint = session->ticket_lifetime_hint; in SSL_SESSION_dup()
125 new_session->ticket_age_add = session->ticket_age_add; in SSL_SESSION_dup()
126 new_session->ticket_max_early_data = session->ticket_max_early_data; in SSL_SESSION_dup()
127 new_session->extended_master_secret = session->extended_master_secret; in SSL_SESSION_dup()
128 new_session->has_application_settings = session->has_application_settings; in SSL_SESSION_dup()
130 if (!new_session->early_alpn.CopyFrom(session->early_alpn) || in SSL_SESSION_dup()
132 session->quic_early_data_context) || in SSL_SESSION_dup()
134 session->local_application_settings) || in SSL_SESSION_dup()
136 session->peer_application_settings)) { in SSL_SESSION_dup()
143 !new_session->ticket.CopyFrom(session->ticket)) { in SSL_SESSION_dup()
153 void ssl_session_rebase_time(SSL *ssl, SSL_SESSION *session) { in ssl_session_rebase_time() argument
157 // time, but mark the session expired. in ssl_session_rebase_time()
158 if (session->time > now.tv_sec) { in ssl_session_rebase_time()
159 session->time = now.tv_sec; in ssl_session_rebase_time()
160 session->timeout = 0; in ssl_session_rebase_time()
161 session->auth_timeout = 0; in ssl_session_rebase_time()
165 // Adjust the session time and timeouts. If the session has already expired, in ssl_session_rebase_time()
167 uint64_t delta = now.tv_sec - session->time; in ssl_session_rebase_time()
168 session->time = now.tv_sec; in ssl_session_rebase_time()
169 if (session->timeout < delta) { in ssl_session_rebase_time()
170 session->timeout = 0; in ssl_session_rebase_time()
172 session->timeout -= delta; in ssl_session_rebase_time()
174 if (session->auth_timeout < delta) { in ssl_session_rebase_time()
175 session->auth_timeout = 0; in ssl_session_rebase_time()
177 session->auth_timeout -= delta; in ssl_session_rebase_time()
181 void ssl_session_renew_timeout(SSL *ssl, SSL_SESSION *session, in ssl_session_renew_timeout() argument
185 ssl_session_rebase_time(ssl, session); in ssl_session_renew_timeout()
187 if (session->timeout > timeout) { in ssl_session_renew_timeout()
191 session->timeout = timeout; in ssl_session_renew_timeout()
192 if (session->timeout > session->auth_timeout) { in ssl_session_renew_timeout()
193 session->timeout = session->auth_timeout; in ssl_session_renew_timeout()
197 uint16_t ssl_session_protocol_version(const SSL_SESSION *session) { in ssl_session_protocol_version() argument
199 if (!ssl_protocol_version_from_wire(&ret, session->ssl_version)) { in ssl_session_protocol_version()
209 const EVP_MD *ssl_session_get_digest(const SSL_SESSION *session) { in ssl_session_get_digest() argument
210 return ssl_get_handshake_digest(ssl_session_protocol_version(session), in ssl_session_get_digest()
211 session->cipher); in ssl_session_get_digest()
221 UniquePtr<SSL_SESSION> session = ssl_session_new(ssl->ctx->x509_method); in ssl_get_new_session() local
222 if (session == NULL) { in ssl_get_new_session()
226 session->is_server = ssl->server; in ssl_get_new_session()
227 session->ssl_version = ssl->s3->version; in ssl_get_new_session()
228 session->is_quic = SSL_is_quic(ssl); in ssl_get_new_session()
232 session->time = now.tv_sec; in ssl_get_new_session()
238 session->timeout = ssl->session_ctx->session_psk_dhe_timeout; in ssl_get_new_session()
239 session->auth_timeout = SSL_DEFAULT_SESSION_AUTH_TIMEOUT; in ssl_get_new_session()
243 session->timeout = ssl->session_ctx->session_timeout; in ssl_get_new_session()
244 session->auth_timeout = ssl->session_ctx->session_timeout; in ssl_get_new_session()
247 if (!session->sid_ctx.TryCopyFrom(hs->config->cert->sid_ctx)) { in ssl_get_new_session()
252 // The session is marked not resumable until it is completely filled in. in ssl_get_new_session()
253 session->not_resumable = true; in ssl_get_new_session()
254 session->verify_result = X509_V_ERR_INVALID_CALL; in ssl_get_new_session()
256 hs->new_session = std::move(session); in ssl_get_new_session()
316 // If the session is too long, decline to send a ticket. in ssl_encrypt_ticket_with_cipher_ctx()
423 const SSL_SESSION *session) { in ssl_encrypt_ticket() argument
427 if (!SSL_SESSION_to_bytes_for_ticket(session, &session_buf, &session_len)) { in ssl_encrypt_ticket()
440 SSLSessionType ssl_session_get_type(const SSL_SESSION *session) { in ssl_session_get_type() argument
441 if (session->not_resumable) { in ssl_session_get_type()
444 if (ssl_session_protocol_version(session) >= TLS1_3_VERSION) { in ssl_session_get_type()
445 return session->ticket.empty() ? SSLSessionType::kNotResumable in ssl_session_get_type()
448 if (!session->ticket.empty()) { in ssl_session_get_type()
451 if (!session->session_id.empty()) { in ssl_session_get_type()
458 const SSL_SESSION *session) { in ssl_session_is_context_valid() argument
459 return session != nullptr && in ssl_session_is_context_valid()
460 Span(session->sid_ctx) == hs->config->cert->sid_ctx; in ssl_session_is_context_valid()
463 bool ssl_session_is_time_valid(const SSL *ssl, const SSL_SESSION *session) { in ssl_session_is_time_valid() argument
464 if (session == NULL) { in ssl_session_is_time_valid()
471 if (now.tv_sec < session->time) { in ssl_session_is_time_valid()
475 return session->timeout > now.tv_sec - session->time; in ssl_session_is_time_valid()
479 const SSL_SESSION *session) { in ssl_session_is_resumable() argument
481 return ssl_session_is_context_valid(hs, session) && in ssl_session_is_resumable()
482 // The session must have been created by the same type of end point as in ssl_session_is_resumable()
484 ssl->server == session->is_server && in ssl_session_is_resumable()
485 // The session must not be expired. in ssl_session_is_resumable()
486 ssl_session_is_time_valid(ssl, session) && in ssl_session_is_resumable()
487 // Only resume if the session's version matches the negotiated in ssl_session_is_resumable()
489 ssl->s3->version == session->ssl_version && in ssl_session_is_resumable()
490 // Only resume if the session's cipher matches the negotiated one. This in ssl_session_is_resumable()
495 hs->new_cipher == session->cipher && in ssl_session_is_resumable()
496 // If the session contains a client certificate (either the full in ssl_session_is_resumable()
499 ((sk_CRYPTO_BUFFER_num(session->certs.get()) == 0 && in ssl_session_is_resumable()
500 !session->peer_sha256_valid) || in ssl_session_is_resumable()
501 session->peer_sha256_valid == in ssl_session_is_resumable()
505 SSL_is_quic(ssl) == int{session->is_quic}; in ssl_session_is_resumable()
508 // ssl_lookup_session looks up |session_id| in the session cache and sets
520 UniquePtr<SSL_SESSION> session; in ssl_lookup_session() local
532 session = UpRef(lh_SSL_SESSION_retrieve_key(ssl->session_ctx->sessions, in ssl_lookup_session()
538 if (!session && ssl->session_ctx->get_session_cb != nullptr) { in ssl_lookup_session()
540 session.reset(ssl->session_ctx->get_session_cb(ssl, session_id.data(), in ssl_lookup_session()
542 if (!session) { in ssl_lookup_session()
546 if (session.get() == SSL_magic_pending_session_ptr()) { in ssl_lookup_session()
547 session.release(); // This pointer is not actually owned. in ssl_lookup_session()
551 // Increment reference count now if the session callback asks us to do so in ssl_lookup_session()
552 // (note that if the session structures returned by the callback are shared in ssl_lookup_session()
556 SSL_SESSION_up_ref(session.get()); in ssl_lookup_session()
559 // Add the externally cached session to the internal cache if necessary. in ssl_lookup_session()
562 SSL_CTX_add_session(ssl->session_ctx.get(), session.get()); in ssl_lookup_session()
566 if (session && !ssl_session_is_time_valid(ssl, session.get())) { in ssl_lookup_session()
567 // The session was from the cache, so remove it. in ssl_lookup_session()
568 SSL_CTX_remove_session(ssl->session_ctx.get(), session.get()); in ssl_lookup_session()
569 session.reset(); in ssl_lookup_session()
572 *out_session = std::move(session); in ssl_lookup_session()
583 UniquePtr<SSL_SESSION> session; in ssl_get_prev_session() local
594 hs, &session, &renew_ticket, ticket, in ssl_get_prev_session()
599 assert(!session); in ssl_get_prev_session()
607 // The client didn't send a ticket, so the session ID is a real ID. in ssl_get_prev_session()
609 hs, &session, in ssl_get_prev_session()
616 *out_session = std::move(session); in ssl_get_prev_session()
622 static bool remove_session(SSL_CTX *ctx, SSL_SESSION *session, bool lock) { in remove_session() argument
623 if (session == nullptr || session->session_id.empty()) { in remove_session()
631 SSL_SESSION *found_session = lh_SSL_SESSION_retrieve(ctx->sessions, session); in remove_session()
632 bool found = found_session == session; in remove_session()
634 found_session = lh_SSL_SESSION_delete(ctx->sessions, session); in remove_session()
635 SSL_SESSION_list_remove(ctx, session); in remove_session()
654 void ssl_set_session(SSL *ssl, SSL_SESSION *session) { in ssl_set_session() argument
655 if (ssl->session.get() == session) { in ssl_set_session()
659 ssl->session = UpRef(session); in ssl_set_session()
663 static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *session) { in SSL_SESSION_list_remove() argument
664 if (session->next == NULL || session->prev == NULL) { in SSL_SESSION_list_remove()
668 if (session->next == (SSL_SESSION *)&ctx->session_cache_tail) { in SSL_SESSION_list_remove()
670 if (session->prev == (SSL_SESSION *)&ctx->session_cache_head) { in SSL_SESSION_list_remove()
675 ctx->session_cache_tail = session->prev; in SSL_SESSION_list_remove()
676 session->prev->next = (SSL_SESSION *)&(ctx->session_cache_tail); in SSL_SESSION_list_remove()
679 if (session->prev == (SSL_SESSION *)&ctx->session_cache_head) { in SSL_SESSION_list_remove()
681 ctx->session_cache_head = session->next; in SSL_SESSION_list_remove()
682 session->next->prev = (SSL_SESSION *)&(ctx->session_cache_head); in SSL_SESSION_list_remove()
684 session->next->prev = session->prev; in SSL_SESSION_list_remove()
685 session->prev->next = session->next; in SSL_SESSION_list_remove()
688 session->prev = session->next = NULL; in SSL_SESSION_list_remove()
691 static void SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *session) { in SSL_SESSION_list_add() argument
692 if (session->next != NULL && session->prev != NULL) { in SSL_SESSION_list_add()
693 SSL_SESSION_list_remove(ctx, session); in SSL_SESSION_list_add()
697 ctx->session_cache_head = session; in SSL_SESSION_list_add()
698 ctx->session_cache_tail = session; in SSL_SESSION_list_add()
699 session->prev = (SSL_SESSION *)&(ctx->session_cache_head); in SSL_SESSION_list_add()
700 session->next = (SSL_SESSION *)&(ctx->session_cache_tail); in SSL_SESSION_list_add()
702 session->next = ctx->session_cache_head; in SSL_SESSION_list_add()
703 session->next->prev = session; in SSL_SESSION_list_add()
704 session->prev = (SSL_SESSION *)&(ctx->session_cache_head); in SSL_SESSION_list_add()
705 ctx->session_cache_head = session; in SSL_SESSION_list_add()
709 static bool add_session_locked(SSL_CTX *ctx, UniquePtr<SSL_SESSION> session) { in add_session_locked() argument
710 SSL_SESSION *new_session = session.get(); in add_session_locked()
719 session.release(); in add_session_locked()
720 session.reset(old_session); in add_session_locked()
724 // |session| was already in the cache. There are no linked list pointers in add_session_locked()
729 // There was a session ID collision. |old_session| was replaced with in add_session_locked()
730 // |session| in the hash table, so |old_session| must be removed from the in add_session_locked()
735 // This does not increment the reference count. Although |session| is inserted in add_session_locked()
756 SSL_SESSION *session = ssl->s3->established_session.get(); in ssl_update_cache() local
758 if (!SSL_SESSION_is_resumable(session) || in ssl_update_cache()
763 // Clients never use the internal session cache. in ssl_update_cache()
766 UniquePtr<SSL_SESSION> ref = UpRef(session); in ssl_update_cache()
773 // Automatically flush the internal session cache every 255 connections. in ssl_update_cache()
792 UniquePtr<SSL_SESSION> ref = UpRef(session); in ssl_update_cache()
827 int SSL_SESSION_up_ref(SSL_SESSION *session) { in SSL_SESSION_up_ref() argument
828 session->UpRefInternal(); in SSL_SESSION_up_ref()
832 void SSL_SESSION_free(SSL_SESSION *session) { in SSL_SESSION_free() argument
833 if (session == nullptr) { in SSL_SESSION_free()
836 session->DecRefInternal(); in SSL_SESSION_free()
839 const uint8_t *SSL_SESSION_get_id(const SSL_SESSION *session, in SSL_SESSION_get_id() argument
842 *out_len = session->session_id.size(); in SSL_SESSION_get_id()
844 return session->session_id.data(); in SSL_SESSION_get_id()
847 int SSL_SESSION_set1_id(SSL_SESSION *session, const uint8_t *sid, in SSL_SESSION_set1_id() argument
849 if (!session->session_id.TryCopyFrom(Span(sid, sid_len))) { in SSL_SESSION_set1_id()
857 uint32_t SSL_SESSION_get_timeout(const SSL_SESSION *session) { in SSL_SESSION_get_timeout() argument
858 return session->timeout; in SSL_SESSION_get_timeout()
861 uint64_t SSL_SESSION_get_time(const SSL_SESSION *session) { in SSL_SESSION_get_time() argument
862 if (session == NULL) { in SSL_SESSION_get_time()
866 return session->time; in SSL_SESSION_get_time()
869 X509 *SSL_SESSION_get0_peer(const SSL_SESSION *session) { in SSL_SESSION_get0_peer() argument
870 return session->x509_peer; in SSL_SESSION_get0_peer()
874 const SSL_SESSION *session) { in STACK_OF()
875 return session->certs.get(); in STACK_OF()
878 void SSL_SESSION_get0_signed_cert_timestamp_list(const SSL_SESSION *session, in SSL_SESSION_get0_signed_cert_timestamp_list() argument
881 if (session->signed_cert_timestamp_list) { in SSL_SESSION_get0_signed_cert_timestamp_list()
882 *out = CRYPTO_BUFFER_data(session->signed_cert_timestamp_list.get()); in SSL_SESSION_get0_signed_cert_timestamp_list()
883 *out_len = CRYPTO_BUFFER_len(session->signed_cert_timestamp_list.get()); in SSL_SESSION_get0_signed_cert_timestamp_list()
890 void SSL_SESSION_get0_ocsp_response(const SSL_SESSION *session, in SSL_SESSION_get0_ocsp_response() argument
892 if (session->ocsp_response) { in SSL_SESSION_get0_ocsp_response()
893 *out = CRYPTO_BUFFER_data(session->ocsp_response.get()); in SSL_SESSION_get0_ocsp_response()
894 *out_len = CRYPTO_BUFFER_len(session->ocsp_response.get()); in SSL_SESSION_get0_ocsp_response()
901 size_t SSL_SESSION_get_master_key(const SSL_SESSION *session, uint8_t *out, in SSL_SESSION_get_master_key() argument
904 return session->secret.size(); in SSL_SESSION_get_master_key()
906 if (max_out > session->secret.size()) { in SSL_SESSION_get_master_key()
907 max_out = session->secret.size(); in SSL_SESSION_get_master_key()
909 OPENSSL_memcpy(out, session->secret.data(), max_out); in SSL_SESSION_get_master_key()
913 uint64_t SSL_SESSION_set_time(SSL_SESSION *session, uint64_t time) { in SSL_SESSION_set_time() argument
914 if (session == NULL) { in SSL_SESSION_set_time()
918 session->time = time; in SSL_SESSION_set_time()
922 uint32_t SSL_SESSION_set_timeout(SSL_SESSION *session, uint32_t timeout) { in SSL_SESSION_set_timeout() argument
923 if (session == NULL) { in SSL_SESSION_set_timeout()
927 session->timeout = timeout; in SSL_SESSION_set_timeout()
928 session->auth_timeout = timeout; in SSL_SESSION_set_timeout()
932 const uint8_t *SSL_SESSION_get0_id_context(const SSL_SESSION *session, in SSL_SESSION_get0_id_context() argument
935 *out_len = session->sid_ctx.size(); in SSL_SESSION_get0_id_context()
937 return session->sid_ctx.data(); in SSL_SESSION_get0_id_context()
940 int SSL_SESSION_set1_id_context(SSL_SESSION *session, const uint8_t *sid_ctx, in SSL_SESSION_set1_id_context() argument
942 if (!session->sid_ctx.TryCopyFrom(Span(sid_ctx, sid_ctx_len))) { in SSL_SESSION_set1_id_context()
950 int SSL_SESSION_should_be_single_use(const SSL_SESSION *session) { in SSL_SESSION_should_be_single_use() argument
951 return ssl_session_protocol_version(session) >= TLS1_3_VERSION; in SSL_SESSION_should_be_single_use()
954 int SSL_SESSION_is_resumable(const SSL_SESSION *session) { in SSL_SESSION_is_resumable() argument
955 return ssl_session_get_type(session) != SSLSessionType::kNotResumable; in SSL_SESSION_is_resumable()
958 int SSL_SESSION_has_ticket(const SSL_SESSION *session) { in SSL_SESSION_has_ticket() argument
959 return !session->ticket.empty(); in SSL_SESSION_has_ticket()
962 void SSL_SESSION_get0_ticket(const SSL_SESSION *session, in SSL_SESSION_get0_ticket() argument
965 *out_ticket = session->ticket.data(); in SSL_SESSION_get0_ticket()
967 *out_len = session->ticket.size(); in SSL_SESSION_get0_ticket()
970 int SSL_SESSION_set_ticket(SSL_SESSION *session, const uint8_t *ticket, in SSL_SESSION_set_ticket() argument
972 return session->ticket.CopyFrom(Span(ticket, ticket_len)); in SSL_SESSION_set_ticket()
975 uint32_t SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *session) { in SSL_SESSION_get_ticket_lifetime_hint() argument
976 return session->ticket_lifetime_hint; in SSL_SESSION_get_ticket_lifetime_hint()
979 const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *session) { in SSL_SESSION_get0_cipher() argument
980 return session->cipher; in SSL_SESSION_get0_cipher()
983 int SSL_SESSION_has_peer_sha256(const SSL_SESSION *session) { in SSL_SESSION_has_peer_sha256() argument
984 return session->peer_sha256_valid; in SSL_SESSION_has_peer_sha256()
987 void SSL_SESSION_get0_peer_sha256(const SSL_SESSION *session, in SSL_SESSION_get0_peer_sha256() argument
989 if (session->peer_sha256_valid) { in SSL_SESSION_get0_peer_sha256()
990 *out_ptr = session->peer_sha256; in SSL_SESSION_get0_peer_sha256()
991 *out_len = sizeof(session->peer_sha256); in SSL_SESSION_get0_peer_sha256()
998 int SSL_SESSION_early_data_capable(const SSL_SESSION *session) { in SSL_SESSION_early_data_capable() argument
999 return ssl_session_protocol_version(session) >= TLS1_3_VERSION && in SSL_SESSION_early_data_capable()
1000 session->ticket_max_early_data != 0; in SSL_SESSION_early_data_capable()
1003 SSL_SESSION *SSL_SESSION_copy_without_early_data(SSL_SESSION *session) { in SSL_SESSION_copy_without_early_data() argument
1004 if (!SSL_SESSION_early_data_capable(session)) { in SSL_SESSION_copy_without_early_data()
1005 return UpRef(session).release(); in SSL_SESSION_copy_without_early_data()
1009 SSL_SESSION_dup(session, SSL_SESSION_DUP_ALL); in SSL_SESSION_copy_without_early_data()
1016 copy->not_resumable = session->not_resumable; in SSL_SESSION_copy_without_early_data()
1027 // established session. In particular, if there is a pending renegotiation, we in SSL_get_session()
1031 // partial session) or |ssl_handshake_session| (if trying to query properties in SSL_get_session()
1042 // Return the 0-RTT session, if in the 0-RTT state. While the handshake has in SSL_get_session()
1049 // Otherwise, return the partial session. in SSL_get_session()
1068 int SSL_SESSION_set_ex_data(SSL_SESSION *session, int idx, void *arg) { in SSL_SESSION_set_ex_data() argument
1069 return CRYPTO_set_ex_data(&session->ex_data, idx, arg); in SSL_SESSION_set_ex_data()
1072 void *SSL_SESSION_get_ex_data(const SSL_SESSION *session, int idx) { in SSL_SESSION_get_ex_data() argument
1073 return CRYPTO_get_ex_data(&session->ex_data, idx); in SSL_SESSION_get_ex_data()
1076 int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session) { in SSL_CTX_add_session() argument
1077 UniquePtr<SSL_SESSION> owned_session = UpRef(session); in SSL_CTX_add_session()
1082 int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session) { in SSL_CTX_remove_session() argument
1083 return remove_session(ctx, session, /*lock=*/true); in SSL_CTX_remove_session()
1086 int SSL_set_session(SSL *ssl, SSL_SESSION *session) { in SSL_set_session() argument
1094 ssl_set_session(ssl, session); in SSL_set_session()
1131 static void timeout_doall_arg(SSL_SESSION *session, void *void_param) { in timeout_doall_arg() argument
1135 session->time + session->timeout < session->time || // in timeout_doall_arg()
1136 param->time > (session->time + session->timeout)) { in timeout_doall_arg()
1138 (void)lh_SSL_SESSION_delete(param->cache, session); in timeout_doall_arg()
1139 SSL_SESSION_list_remove(param->ctx, session); in timeout_doall_arg()
1143 param->ctx->remove_session_cb(param->ctx, session); in timeout_doall_arg()
1145 SSL_SESSION_free(session); in timeout_doall_arg()
1163 int (*cb)(SSL *ssl, SSL_SESSION *session)) { in SSL_CTX_sess_set_new_cb() argument
1167 int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx))(SSL *ssl, SSL_SESSION *session) { in SSL_CTX_sess_get_new_cb()
1173 SSL_SESSION *session)) { in SSL_CTX_sess_set_remove_cb() argument
1178 SSL_SESSION *session) { in SSL_CTX_sess_get_remove_cb()