diff options
Diffstat (limited to 'src/lib/libssl/t1_enc.c')
-rw-r--r-- | src/lib/libssl/t1_enc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/libssl/t1_enc.c b/src/lib/libssl/t1_enc.c index 347d34d455..177ee061ed 100644 --- a/src/lib/libssl/t1_enc.c +++ b/src/lib/libssl/t1_enc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: t1_enc.c,v 1.120 2020/03/12 17:09:02 jsing Exp $ */ | 1 | /* $OpenBSD: t1_enc.c,v 1.121 2020/03/13 16:40:42 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -341,13 +341,16 @@ tls1_change_cipher_state_aead(SSL *s, char is_read, const unsigned char *key, | |||
341 | const EVP_AEAD *aead = S3I(s)->tmp.new_aead; | 341 | const EVP_AEAD *aead = S3I(s)->tmp.new_aead; |
342 | SSL_AEAD_CTX *aead_ctx; | 342 | SSL_AEAD_CTX *aead_ctx; |
343 | 343 | ||
344 | /* XXX - Need to avoid clearing write state for DTLS. */ | ||
345 | if (SSL_IS_DTLS(s)) | ||
346 | return 0; | ||
347 | |||
344 | if (is_read) { | 348 | if (is_read) { |
345 | ssl_clear_cipher_read_state(s); | 349 | ssl_clear_cipher_read_state(s); |
346 | if (!tls1_aead_ctx_init(&s->internal->aead_read_ctx)) | 350 | if (!tls1_aead_ctx_init(&s->internal->aead_read_ctx)) |
347 | return 0; | 351 | return 0; |
348 | aead_ctx = s->internal->aead_read_ctx; | 352 | aead_ctx = s->internal->aead_read_ctx; |
349 | } else { | 353 | } else { |
350 | /* XXX - Need to correctly handle DTLS. */ | ||
351 | ssl_clear_cipher_write_state(s); | 354 | ssl_clear_cipher_write_state(s); |
352 | if (!tls1_aead_ctx_init(&s->internal->aead_write_ctx)) | 355 | if (!tls1_aead_ctx_init(&s->internal->aead_write_ctx)) |
353 | return 0; | 356 | return 0; |