mirror of
https://github.com/openssl/openssl.git
synced 2024-11-24 10:34:12 +08:00
Use a fetched cipher when decrypting a ticket in libssl
We need to make sure we are using the correct libctx and property query. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11402)
This commit is contained in:
parent
8158cf2097
commit
148bfd26a4
16
ssl/t1_lib.c
16
ssl/t1_lib.c
@ -1521,21 +1521,29 @@ SSL_TICKET_STATUS tls_decrypt_ticket(SSL *s, const unsigned char *etick,
|
||||
if (rv == 2)
|
||||
renew_ticket = 1;
|
||||
} else {
|
||||
EVP_CIPHER *aes256cbc = NULL;
|
||||
|
||||
/* Check key name matches */
|
||||
if (memcmp(etick, tctx->ext.tick_key_name,
|
||||
TLSEXT_KEYNAME_LENGTH) != 0) {
|
||||
ret = SSL_TICKET_NO_DECRYPT;
|
||||
goto end;
|
||||
}
|
||||
if (ssl_hmac_init(hctx, tctx->ext.secure->tick_hmac_key,
|
||||
sizeof(tctx->ext.secure->tick_hmac_key),
|
||||
"SHA256") <= 0
|
||||
|| EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL,
|
||||
|
||||
aes256cbc = EVP_CIPHER_fetch(s->ctx->libctx, "AES-256-CBC",
|
||||
s->ctx->propq);
|
||||
if (aes256cbc == NULL
|
||||
|| ssl_hmac_init(hctx, tctx->ext.secure->tick_hmac_key,
|
||||
sizeof(tctx->ext.secure->tick_hmac_key),
|
||||
"SHA256") <= 0
|
||||
|| EVP_DecryptInit_ex(ctx, aes256cbc, NULL,
|
||||
tctx->ext.secure->tick_aes_key,
|
||||
etick + TLSEXT_KEYNAME_LENGTH) <= 0) {
|
||||
EVP_CIPHER_free(aes256cbc);
|
||||
ret = SSL_TICKET_FATAL_ERR_OTHER;
|
||||
goto end;
|
||||
}
|
||||
EVP_CIPHER_free(aes256cbc);
|
||||
if (SSL_IS_TLS13(s))
|
||||
renew_ticket = 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user