09 Nov, 2011

1 commit

  • Patch adds LRW support for twofish-x86_64-3way by using lrw_crypt(). Patch has
    been tested with tcrypt and automated filesystem tests.

    Tcrypt benchmarks results (twofish-3way/twofish-asm speed ratios):

    Intel Celeron T1600 (fam:6, model:15, step:13):

    size lrw-enc lrw-dec
    16B 0.99x 1.00x
    64B 1.17x 1.17x
    256B 1.26x 1.27x
    1024B 1.30x 1.31x
    8192B 1.31x 1.32x

    AMD Phenom II 1055T (fam:16, model:10):

    size lrw-enc lrw-dec
    16B 1.06x 1.01x
    64B 1.08x 1.14x
    256B 1.19x 1.20x
    1024B 1.21x 1.22x
    8192B 1.23x 1.24x

    Signed-off-by: Jussi Kivilinna
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     

11 Jan, 2008

1 commit

  • 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: Denys Vlasenko
    Signed-off-by: Herbert Xu

    Denys Vlasenko
     

21 Sep, 2006

2 commits

  • 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: Herbert Xu

    Herbert Xu
     
  • 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: Joachim Fritschi
    Signed-off-by: Herbert Xu

    Joachim Fritschi