From 491b0c7c15e5a343cadabdf9cb7560956c9bb077 Mon Sep 17 00:00:00 2001 From: Vitaly Chikunov Date: Sun, 10 May 2020 01:20:40 +0300 Subject: [PATCH] gost_crypt: Fix Magma CBC in-place decryption Simplest fix not concerned with performance, still should not impact it too much. --- gost_crypt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gost_crypt.c b/gost_crypt.c index ffb577d..33dc668 100644 --- a/gost_crypt.c +++ b/gost_crypt.c @@ -774,10 +774,11 @@ int magma_cipher_do_cbc(EVP_CIPHER_CTX *ctx, unsigned char *out, d[7 - i] = in_ptr[i]; } gostdecrypt(&(c->cctx), d, b); + memcpy(d, in_ptr, 8); for (i = 0; i < 8; i++) { out_ptr[i] = iv[i] ^ b[7 - i]; } - memcpy(iv, in_ptr, 8); + memcpy(iv, d, 8); out_ptr += 8; in_ptr += 8; inl -= 8; -- 2.39.2