summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/evp/e_chacha20poly1305.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/libcrypto/evp/e_chacha20poly1305.c b/src/lib/libcrypto/evp/e_chacha20poly1305.c
index cc2e0157e6..816a8aa218 100644
--- a/src/lib/libcrypto/evp/e_chacha20poly1305.c
+++ b/src/lib/libcrypto/evp/e_chacha20poly1305.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: e_chacha20poly1305.c,v 1.35 2024/04/09 13:52:41 beck Exp $ */ 1/* $OpenBSD: e_chacha20poly1305.c,v 1.36 2024/05/22 14:02:08 tb Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org>
@@ -493,6 +493,8 @@ chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
493 493
494 /* Update with AD or plaintext/ciphertext. */ 494 /* Update with AD or plaintext/ciphertext. */
495 if (in != NULL) { 495 if (in != NULL) {
496 if (!ctx->encrypt || out == NULL)
497 CRYPTO_poly1305_update(&cpx->poly1305, in, len);
496 if (out == NULL) { 498 if (out == NULL) {
497 cpx->ad_len += len; 499 cpx->ad_len += len;
498 cpx->in_ad = 1; 500 cpx->in_ad = 1;
@@ -502,8 +504,6 @@ chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
502 } 504 }
503 if (ctx->encrypt && out != NULL) 505 if (ctx->encrypt && out != NULL)
504 CRYPTO_poly1305_update(&cpx->poly1305, out, len); 506 CRYPTO_poly1305_update(&cpx->poly1305, out, len);
505 else
506 CRYPTO_poly1305_update(&cpx->poly1305, in, len);
507 507
508 return len; 508 return len;
509 } 509 }