1. 11 1月, 2008 1 次提交
    • D
      [CRYPTO] twofish: Do not unroll big stuff in twofish key setup · e2b21b50
      Denys Vlasenko 提交于
      Currently twofish cipher key setup code
      has unrolled loops - approximately 70-100
      instructions are repeated 40 times.
      
      As a result, twofish module is the biggest module
      in crypto/*.
      
      Unrolling produces x2.5 more code (+18k on i386), and speeds up key
      setup by 7%:
      
      	unrolled: twofish_setkey/sec: 41128
      	    loop: twofish_setkey/sec: 38148
      	CALC_K256: ~100 insns each
      	CALC_K192: ~90 insns
      	   CALC_K: ~70 insns
      
      Attached patch removes this unrolling.
      
      $ size */twofish_common.o
         text    data     bss     dec     hex filename
        37920       0       0   37920    9420 crypto.org/twofish_common.o
        13209       0       0   13209    3399 crypto/twofish_common.o
      
      Run tested (modprobe tcrypt reports ok). Please apply.
      Signed-off-by: NDenys Vlasenko <vda.linux@googlemail.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      e2b21b50
  2. 21 9月, 2006 2 次提交
    • H
      [CRYPTO] api: Get rid of flags argument to setkey · 560c06ae
      Herbert Xu 提交于
      Now that the tfm is passed directly to setkey instead of the ctx, we no
      longer need to pass the &tfm->crt_flags pointer.
      
      This patch also gets rid of a few unnecessary checks on the key length
      for ciphers as the cipher layer guarantees that the key length is within
      the bounds specified by the algorithm.
      
      Rather than testing dia_setkey every time, this patch does it only once
      during crypto_alloc_tfm.  The redundant check from crypto_digest_setkey
      is also removed.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      560c06ae
    • J
      [CRYPTO] twofish: Split out common c code · 2729bb42
      Joachim Fritschi 提交于
      This patch splits up the twofish crypto routine into a common part ( key
      setup  ) which will be uses by all twofish crypto modules ( generic-c , i586
      assembler and x86_64 assembler ) and generic-c part. It also creates a new
      header file which will be used by all 3 modules.
      
      This eliminates all code duplication.
      
      Correctness was verified with the tcrypt module and automated test scripts.
      Signed-off-by: NJoachim Fritschi <jfritschi@freenet.de>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      2729bb42