diff mbox series

[13/17] crypto/builtin: Move AES_cbc_encrypt into cipher-builtin.inc.c

Message ID 20200813032537.2888593-14-richard.henderson@linaro.org
State Superseded
Headers show
Series crypto/cipher: Class hierarchy cleanups | expand

Commit Message

Richard Henderson Aug. 13, 2020, 3:25 a.m. UTC
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.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 include/crypto/aes.h        |  4 ---
 crypto/aes.c                | 51 ---------------------------------
 crypto/cipher-builtin.inc.c | 56 +++++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 55 deletions(-)

-- 
2.25.1

Comments

Philippe Mathieu-Daudé Aug. 13, 2020, 8:11 a.m. UTC | #1
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é <philmd@redhat.com>


> 

> Signed-off-by: Richard Henderson <richard.henderson@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,

>
Daniel P. Berrangé Aug. 17, 2020, 5:01 p.m. UTC | #2
On Wed, Aug 12, 2020 at 08:25:33PM -0700, 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.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  include/crypto/aes.h        |  4 ---

>  crypto/aes.c                | 51 ---------------------------------

>  crypto/cipher-builtin.inc.c | 56 +++++++++++++++++++++++++++++++++++++

>  3 files changed, 56 insertions(+), 55 deletions(-)


Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
diff mbox series

Patch

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,