]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
crypto: aes-ni - Fix cbc mode IV saving
authorHuang Ying <ying.huang@intel.com>
Thu, 18 Jun 2009 11:33:57 +0000 (19:33 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 2 Jul 2009 23:50:19 +0000 (16:50 -0700)
commit e6efaa025384f86a18814a6b9f4e5d54484ab9ff upstream.

Original implementation of aesni_cbc_dec do not save IV if input
length % 4 == 0. This will make decryption of next block failed.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/crypto/aesni-intel_asm.S

index caba99601703de3fafefd5e84b00abbff71a8eaa..eb0566e83319299fbf5046c32d247216d0ad4055 100644 (file)
@@ -845,7 +845,7 @@ ENTRY(aesni_cbc_enc)
  */
 ENTRY(aesni_cbc_dec)
        cmp $16, LEN
-       jb .Lcbc_dec_ret
+       jb .Lcbc_dec_just_ret
        mov 480(KEYP), KLEN
        add $240, KEYP
        movups (IVP), IV
@@ -891,6 +891,7 @@ ENTRY(aesni_cbc_dec)
        add $16, OUTP
        cmp $16, LEN
        jge .Lcbc_dec_loop1
-       movups IV, (IVP)
 .Lcbc_dec_ret:
+       movups IV, (IVP)
+.Lcbc_dec_just_ret:
        ret