From: Matt Caswell <matt@openssl.org>
Date: Wed, 20 Feb 2019 11:11:04 +0000 (+0000)
Subject: Fix dasync engine
X-Git-Tag: openssl-3.0.0-alpha1~2494
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=695dd3a332fdd54b873fd0d08f9ae720141f24cd;p=oweals%2Fopenssl.git

Fix dasync engine

The aes128_cbc_hmac_sha1 cipher in the dasync engine is broken. Probably
by commit e38c2e8535 which removed use of the "enc" variable...but not
completely.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/8291)
---

diff --git a/engines/e_dasync.c b/engines/e_dasync.c
index 3d80610b67..f8a52e9da2 100644
--- a/engines/e_dasync.c
+++ b/engines/e_dasync.c
@@ -138,7 +138,6 @@ struct dasync_pipeline_ctx {
     unsigned char **inbufs;
     unsigned char **outbufs;
     size_t *lens;
-    int enc;
     unsigned char tlsaad[SSL_MAX_PIPELINES][EVP_AEAD_TLS1_AAD_LEN];
     unsigned int aadctr;
 };
@@ -617,7 +616,7 @@ static int dasync_cipher_ctrl_helper(EVP_CIPHER_CTX *ctx, int type, int arg,
 
             len = p[arg - 2] << 8 | p[arg - 1];
 
-            if (pipe_ctx->enc) {
+            if (EVP_CIPHER_CTX_encrypting(ctx)) {
                 if ((p[arg - 4] << 8 | p[arg - 3]) >= TLS1_1_VERSION) {
                     if (len < AES_BLOCK_SIZE)
                         return 0;