Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Linus Torvalds [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
@@@ -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