On 8/13/20 5:25 AM, Richard Henderson wrote: > By making the function private, we will be able to make further > simplifications. Re-indent the migrated code and fix the missing > braces for CODING_STYLE.
Patch easier to review using 'git-diff --color-moved=dimmed-zebra --color-moved-ws=allow-indentation-change'. Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > include/crypto/aes.h | 4 --- > crypto/aes.c | 51 --------------------------------- > crypto/cipher-builtin.inc.c | 56 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 56 insertions(+), 55 deletions(-) > > diff --git a/include/crypto/aes.h b/include/crypto/aes.h > index 12fb321b89..ba297d6a73 100644 > --- a/include/crypto/aes.h > +++ b/include/crypto/aes.h > @@ -16,7 +16,6 @@ typedef struct aes_key_st AES_KEY; > #define AES_set_decrypt_key QEMU_AES_set_decrypt_key > #define AES_encrypt QEMU_AES_encrypt > #define AES_decrypt QEMU_AES_decrypt > -#define AES_cbc_encrypt QEMU_AES_cbc_encrypt > > int AES_set_encrypt_key(const unsigned char *userKey, const int bits, > AES_KEY *key); > @@ -27,9 +26,6 @@ void AES_encrypt(const unsigned char *in, unsigned char > *out, > const AES_KEY *key); > void AES_decrypt(const unsigned char *in, unsigned char *out, > const AES_KEY *key); > -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, > - const unsigned long length, const AES_KEY *key, > - unsigned char *ivec, const int enc); > > extern const uint8_t AES_sbox[256]; > extern const uint8_t AES_isbox[256]; > diff --git a/crypto/aes.c b/crypto/aes.c > index 0f6a195af8..159800df65 100644 > --- a/crypto/aes.c > +++ b/crypto/aes.c > @@ -1599,54 +1599,3 @@ void AES_decrypt(const unsigned char *in, unsigned > char *out, > } > > #endif /* AES_ASM */ > - > -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, > - const unsigned long length, const AES_KEY *key, > - unsigned char *ivec, const int enc) > -{ > - > - unsigned long n; > - unsigned long len = length; > - unsigned char tmp[AES_BLOCK_SIZE]; > - > - assert(in && out && key && ivec); > - > - if (enc) { > - while (len >= AES_BLOCK_SIZE) { > - for(n=0; n < AES_BLOCK_SIZE; ++n) > - tmp[n] = in[n] ^ ivec[n]; > - AES_encrypt(tmp, out, key); > - memcpy(ivec, out, AES_BLOCK_SIZE); > - len -= AES_BLOCK_SIZE; > - in += AES_BLOCK_SIZE; > - out += AES_BLOCK_SIZE; > - } > - if (len) { > - for(n=0; n < len; ++n) > - tmp[n] = in[n] ^ ivec[n]; > - for(n=len; n < AES_BLOCK_SIZE; ++n) > - tmp[n] = ivec[n]; > - AES_encrypt(tmp, tmp, key); > - memcpy(out, tmp, AES_BLOCK_SIZE); > - memcpy(ivec, tmp, AES_BLOCK_SIZE); > - } > - } else { > - while (len >= AES_BLOCK_SIZE) { > - memcpy(tmp, in, AES_BLOCK_SIZE); > - AES_decrypt(in, out, key); > - for(n=0; n < AES_BLOCK_SIZE; ++n) > - out[n] ^= ivec[n]; > - memcpy(ivec, tmp, AES_BLOCK_SIZE); > - len -= AES_BLOCK_SIZE; > - in += AES_BLOCK_SIZE; > - out += AES_BLOCK_SIZE; > - } > - if (len) { > - memcpy(tmp, in, AES_BLOCK_SIZE); > - AES_decrypt(tmp, tmp, key); > - for(n=0; n < len; ++n) > - out[n] = tmp[n] ^ ivec[n]; > - memcpy(ivec, tmp, AES_BLOCK_SIZE); > - } > - } > -} > diff --git a/crypto/cipher-builtin.inc.c b/crypto/cipher-builtin.inc.c > index 4d971a2b82..416d44b38e 100644 > --- a/crypto/cipher-builtin.inc.c > +++ b/crypto/cipher-builtin.inc.c > @@ -100,6 +100,62 @@ static void do_aes_decrypt_ecb(const void *vctx, size_t > len, > } > } > > +static void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, > + const unsigned long length, const AES_KEY *key, > + unsigned char *ivec, const int enc) > +{ > + unsigned long n; > + unsigned long len = length; > + unsigned char tmp[AES_BLOCK_SIZE]; > + > + assert(in && out && key && ivec); > + > + if (enc) { > + while (len >= AES_BLOCK_SIZE) { > + for (n = 0; n < AES_BLOCK_SIZE; ++n) { > + tmp[n] = in[n] ^ ivec[n]; > + } > + AES_encrypt(tmp, out, key); > + memcpy(ivec, out, AES_BLOCK_SIZE); > + len -= AES_BLOCK_SIZE; > + in += AES_BLOCK_SIZE; > + out += AES_BLOCK_SIZE; > + } > + if (len) { > + for (n = 0; n < len; ++n) { > + tmp[n] = in[n] ^ ivec[n]; > + } > + for (n = len; n < AES_BLOCK_SIZE; ++n) { > + tmp[n] = ivec[n]; > + } > + AES_encrypt(tmp, tmp, key); > + memcpy(out, tmp, AES_BLOCK_SIZE); > + memcpy(ivec, tmp, AES_BLOCK_SIZE); > + } > + } else { > + while (len >= AES_BLOCK_SIZE) { > + memcpy(tmp, in, AES_BLOCK_SIZE); > + AES_decrypt(in, out, key); > + for (n = 0; n < AES_BLOCK_SIZE; ++n) { > + out[n] ^= ivec[n]; > + } > + memcpy(ivec, tmp, AES_BLOCK_SIZE); > + len -= AES_BLOCK_SIZE; > + in += AES_BLOCK_SIZE; > + out += AES_BLOCK_SIZE; > + } > + if (len) { > + memcpy(tmp, in, AES_BLOCK_SIZE); > + AES_decrypt(tmp, tmp, key); > + for (n = 0; n < len; ++n) { > + out[n] = tmp[n] ^ ivec[n]; > + } > + memcpy(ivec, tmp, AES_BLOCK_SIZE); > + } > + } > +} > + > + > static int qcrypto_cipher_encrypt_aes(QCryptoCipher *cipher, > const void *in, > void *out, >