Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 May 2013 21:53:12 +0000 (14:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 May 2013 21:53:12 +0000 (14:53 -0700)
Pull crypto update from Herbert Xu:

 - XTS mode optimisation for twofish/cast6/camellia/aes on x86

 - AVX2/x86_64 implementation for blowfish/twofish/serpent/camellia

 - SSSE3/AVX/AVX2 optimisations for sha256/sha512

 - Added driver for SAHARA2 crypto accelerator

 - Fix for GMAC when used in non-IPsec secnarios

 - Added generic CMAC implementation (including IPsec glue)

 - IP update for crypto/atmel

 - Support for more than one device in hwrng/timeriomem

 - Added Broadcom BCM2835 RNG driver

 - Misc fixes

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (59 commits)
  crypto: caam - fix job ring cleanup code
  crypto: camellia - add AVX2/AES-NI/x86_64 assembler implementation of camellia cipher
  crypto: serpent - add AVX2/x86_64 assembler implementation of serpent cipher
  crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher
  crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher
  crypto: tcrypt - add async cipher speed tests for blowfish
  crypto: testmgr - extend camellia test-vectors for camellia-aesni/avx2
  crypto: aesni_intel - fix Kconfig problem with CRYPTO_GLUE_HELPER_X86
  crypto: aesni_intel - add more optimized XTS mode for x86-64
  crypto: x86/camellia-aesni-avx - add more optimized XTS code
  crypto: cast6-avx: use new optimized XTS code
  crypto: x86/twofish-avx - use optimized XTS code
  crypto: x86 - add more optimized XTS-mode for serpent-avx
  xfrm: add rfc4494 AES-CMAC-96 support
  crypto: add CMAC support to CryptoAPI
  crypto: testmgr - add empty test vectors for null ciphers
  crypto: testmgr - add AES GMAC test vectors
  crypto: gcm - fix rfc4543 to handle async crypto correctly
  crypto: gcm - make GMAC work when dst and src are different
  hwrng: timeriomem - added devicetree hooks
  ...

1  2 
arch/x86/include/asm/cpufeature.h
crypto/gcm.c
crypto/testmgr.h
drivers/char/hw_random/mxc-rnga.c
drivers/crypto/caam/caamalg.c
drivers/crypto/caam/ctrl.c
drivers/crypto/ux500/hash/hash_core.c

Simple merge
diff --cc crypto/gcm.c
index 13ccbda34ff979fbeb037b88ae400f4e248789a7,b0d3cb12334db336e0801a0ea16145684554e9a3..43e1fb05ea54878cbe136231a1a92c847b6d3119
@@@ -1131,22 -1151,12 +1152,22 @@@ static struct aead_request *crypto_rfc4
  
        sg_init_table(payload, 2);
        sg_set_buf(payload, req->iv, 8);
-       scatterwalk_crypto_chain(payload, dst, vdst == req->iv + 8, 2);
+       scatterwalk_crypto_chain(payload, src, vsrc == req->iv + 8, 2);
        assoclen += 8 + req->cryptlen - (enc ? 0 : authsize);
  
 -      sg_init_table(assoc, 2);
 -      sg_set_page(assoc, sg_page(req->assoc), req->assoc->length,
 -                  req->assoc->offset);
 +      if (req->assoc->length == req->assoclen) {
 +              sg_init_table(assoc, 2);
 +              sg_set_page(assoc, sg_page(req->assoc), req->assoc->length,
 +                          req->assoc->offset);
 +      } else {
 +              BUG_ON(req->assoclen > sizeof(rctx->assocbuf));
 +
 +              scatterwalk_map_and_copy(rctx->assocbuf, req->assoc, 0,
 +                                       req->assoclen, 0);
 +
 +              sg_init_table(assoc, 2);
 +              sg_set_buf(assoc, rctx->assocbuf, req->assoclen);
 +      }
        scatterwalk_crypto_chain(assoc, payload, 0, 2);
  
        aead_request_set_tfm(subreq, ctx->child);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge