]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
padlock: make cbc code return error properly
authorDmitry Baryshkov <dbaryshkov@gmail.com>
Fri, 27 Mar 2020 23:27:31 +0000 (02:27 +0300)
committerDmitry Baryshkov <dbaryshkov@gmail.com>
Fri, 27 Mar 2020 23:27:31 +0000 (02:27 +0300)
If underlying padlock_cbc_en/decrypt return an error, pass this error to
calling code.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
lib/accelerated/x86/aes-padlock.c

index f10b5c555d0b760b048675bfa713f389079585fd..018764bc6708934bd6a5831252a7499a878f89ea 100644 (file)
@@ -119,13 +119,14 @@ padlock_aes_cbc_encrypt(void *_ctx, const void *src, size_t src_size,
 {
        struct padlock_ctx *ctx = _ctx;
        struct padlock_cipher_data *pce;
+       int ret = 1;
 
        pce = ALIGN16(&ctx->expanded_key);
 
        if (src_size > 0)
-               padlock_cbc_encrypt(dst, src, pce, src_size);
+               ret = padlock_cbc_encrypt(dst, src, pce, src_size);
 
-       return 0;
+       return ret ? 0 : GNUTLS_E_ENCRYPTION_FAILED;
 }
 
 
@@ -135,13 +136,14 @@ padlock_aes_cbc_decrypt(void *_ctx, const void *src, size_t src_size,
 {
        struct padlock_ctx *ctx = _ctx;
        struct padlock_cipher_data *pcd;
+       int ret = 1;
 
        pcd = ALIGN16(&ctx->expanded_key);
 
        if (src_size > 0)
                padlock_cbc_encrypt(dst, src, pcd, src_size);
 
-       return 0;
+       return ret ? 0 : GNUTLS_E_ENCRYPTION_FAILED;
 }
 
 static void aes_deinit(void *_ctx)