@ -350,19 +350,19 @@ const EVP_MD *ssl_session_get_digest(const SSL_SESSION *session) {
session - > cipher ) ;
session - > cipher ) ;
}
}
int ssl_get_new_session ( SSL_HANDSHAKE * hs , int is_server ) {
bool ssl_get_new_session ( SSL_HANDSHAKE * hs ) {
SSL * const ssl = hs - > ssl ;
SSL * const ssl = hs - > ssl ;
if ( ssl - > mode & SSL_MODE_NO_SESSION_CREATION ) {
if ( ssl - > mode & SSL_MODE_NO_SESSION_CREATION ) {
OPENSSL_PUT_ERROR ( SSL , SSL_R_SESSION_MAY_NOT_BE_CREATED ) ;
OPENSSL_PUT_ERROR ( SSL , SSL_R_SESSION_MAY_NOT_BE_CREATED ) ;
return 0 ;
return false ;
}
}
UniquePtr < SSL_SESSION > session = ssl_session_new ( ssl - > ctx - > x509_method ) ;
UniquePtr < SSL_SESSION > session = ssl_session_new ( ssl - > ctx - > x509_method ) ;
if ( session = = NULL ) {
if ( session = = NULL ) {
return 0 ;
return false ;
}
}
session - > is_server = is_ server;
session - > is_server = ssl - > server ;
session - > ssl_version = ssl - > version ;
session - > ssl_version = ssl - > version ;
session - > is_quic = ssl - > quic_method ! = nullptr ;
session - > is_quic = ssl - > quic_method ! = nullptr ;
@ -384,24 +384,9 @@ int ssl_get_new_session(SSL_HANDSHAKE *hs, int is_server) {
session - > auth_timeout = ssl - > session_ctx - > session_timeout ;
session - > auth_timeout = ssl - > session_ctx - > session_timeout ;
}
}
if ( is_server ) {
if ( hs - > ticket_expected | | version > = TLS1_3_VERSION ) {
// Don't set session IDs for sessions resumed with tickets. This will keep
// them out of the session cache.
session - > session_id_length = 0 ;
} else {
session - > session_id_length = SSL3_SSL_SESSION_ID_LENGTH ;
if ( ! RAND_bytes ( session - > session_id , session - > session_id_length ) ) {
return 0 ;
}
}
} else {
session - > session_id_length = 0 ;
}
if ( hs - > config - > cert - > sid_ctx_length > sizeof ( session - > sid_ctx ) ) {
if ( hs - > config - > cert - > sid_ctx_length > sizeof ( session - > sid_ctx ) ) {
OPENSSL_PUT_ERROR ( SSL , ERR_R_INTERNAL_ERROR ) ;
OPENSSL_PUT_ERROR ( SSL , ERR_R_INTERNAL_ERROR ) ;
return 0 ;
return false ;
}
}
OPENSSL_memcpy ( session - > sid_ctx , hs - > config - > cert - > sid_ctx ,
OPENSSL_memcpy ( session - > sid_ctx , hs - > config - > cert - > sid_ctx ,
hs - > config - > cert - > sid_ctx_length ) ;
hs - > config - > cert - > sid_ctx_length ) ;
@ -413,7 +398,7 @@ int ssl_get_new_session(SSL_HANDSHAKE *hs, int is_server) {
hs - > new_session = std : : move ( session ) ;
hs - > new_session = std : : move ( session ) ;
ssl_set_session ( ssl , NULL ) ;
ssl_set_session ( ssl , NULL ) ;
return 1 ;
return true ;
}
}
int ssl_ctx_rotate_ticket_encryption_key ( SSL_CTX * ctx ) {
int ssl_ctx_rotate_ticket_encryption_key ( SSL_CTX * ctx ) {