05 Dec, 2014

1 commit


01 Aug, 2014

1 commit


03 Jul, 2014

1 commit


20 Jun, 2014

1 commit


22 May, 2014

1 commit

  • Test vectors were taken from existing test for
    CBC(DES3_EDE). Associated data has been added to test vectors.
    HMAC computed with Crypto++ has been used. Following algos have
    been covered.

    (a) "authenc(hmac(sha1),cbc(des))"
    (b) "authenc(hmac(sha1),cbc(des3_ede))"
    (c) "authenc(hmac(sha224),cbc(des))"
    (d) "authenc(hmac(sha224),cbc(des3_ede))"
    (e) "authenc(hmac(sha256),cbc(des))"
    (f) "authenc(hmac(sha256),cbc(des3_ede))"
    (g) "authenc(hmac(sha384),cbc(des))"
    (h) "authenc(hmac(sha384),cbc(des3_ede))"
    (i) "authenc(hmac(sha512),cbc(des))"
    (j) "authenc(hmac(sha512),cbc(des3_ede))"

    Signed-off-by: Vakul Garg
    [NiteshNarayanLal@freescale.com: added hooks for the missing algorithms test and tested the patch]
    Signed-off-by: Nitesh Lal
    Signed-off-by: Herbert Xu

    Nitesh Lal
     

28 Apr, 2014

3 commits


21 Mar, 2014

1 commit


20 Dec, 2013

1 commit


28 Nov, 2013

1 commit

  • For aead case when source and destination buffers are different,
    there is an incorrect assumption that the source length includes the ICV
    length. Fix this, since it leads to an oops when using sg_count() to
    find the number of nents in the scatterlist:

    Unable to handle kernel paging request for data at address 0x00000004
    Faulting instruction address: 0xf91f7634
    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=8 P4080 DS
    Modules linked in: caamalg(+) caam_jr caam
    CPU: 1 PID: 1053 Comm: cryptomgr_test Not tainted 3.11.0 #16
    task: eeb24ab0 ti: eeafa000 task.ti: eeafa000
    NIP: f91f7634 LR: f91f7f24 CTR: f91f7ef0
    REGS: eeafbbc0 TRAP: 0300 Not tainted (3.11.0)
    MSR: 00029002 CR: 44044044 XER: 00000000
    DEAR: 00000004, ESR: 00000000

    GPR00: f91f7f24 eeafbc70 eeb24ab0 00000002 ee8e0900 ee8e0800 00000024 c45c4462
    GPR08: 00000010 00000000 00000014 0c0e4000 24044044 00000000 00000000 c0691590
    GPR16: eeab0000 eeb23000 00000000 00000000 00000000 00000001 00000001 eeafbcc8
    GPR24: 000000d1 00000010 ee2d5000 ee49ea10 ee49ea10 ee46f640 ee46f640 c0691590
    NIP [f91f7634] aead_edesc_alloc.constprop.14+0x144/0x780 [caamalg]
    LR [f91f7f24] aead_encrypt+0x34/0x288 [caamalg]
    Call Trace:
    [eeafbc70] [a1004000] 0xa1004000 (unreliable)
    [eeafbcc0] [f91f7f24] aead_encrypt+0x34/0x288 [caamalg]
    [eeafbcf0] [c020d77c] __test_aead+0x3ec/0xe20
    [eeafbe20] [c020f35c] test_aead+0x6c/0xe0
    [eeafbe40] [c020f420] alg_test_aead+0x50/0xd0
    [eeafbe60] [c020e5e4] alg_test+0x114/0x2e0
    [eeafbee0] [c020bd1c] cryptomgr_test+0x4c/0x60
    [eeafbef0] [c0047058] kthread+0xa8/0xb0
    [eeafbf40] [c000eb0c] ret_from_kernel_thread+0x5c/0x64
    Instruction dump:
    69084321 7d080034 5508d97e 69080001 0f080000 81290024 552807fe 0f080000
    3a600001 5529003a 2f8a0000 40dd0028 3ab50001 8109000c 70e30002
    ---[ end trace b3c3e23925c7484e ]---

    While here, add a tcrypt mode for making it easy to test authenc
    (needed for triggering case above).

    Signed-off-by: Horia Geanta
    Signed-off-by: Herbert Xu

    Horia Geanta
     

15 Nov, 2013

1 commit


07 Sep, 2013

1 commit


24 Jul, 2013

1 commit

  • This reverts commits
    67822649d7305caf3dd50ed46c27b99c94eff996
    39761214eefc6b070f29402aa1165f24d789b3f7
    0b95a7f85718adcbba36407ef88bba0a7379ed03
    31d939625a9a20b1badd2d4e6bf6fd39fa523405
    2d31e518a42828df7877bca23a958627d60408bc

    Unfortunately this change broke boot on some systems that used an
    initrd which does not include the newly created crct10dif modules.
    As these modules are required by sd_mod under certain configurations
    this is a serious problem.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

24 May, 2013

1 commit

  • These are simple tests to do sanity check of CRC T10 DIF hash. The
    correctness of the transform can be checked with the command
    modprobe tcrypt mode=47
    The speed of the transform can be evaluated with the command
    modprobe tcrypt mode=320

    Set the cpu frequency to constant and turn turbo off when running the
    speed test so the frequency governor will not tweak the frequency and
    affects the measurements.

    Signed-off-by: Tim Chen
    Signed-off-by: Herbert Xu

    Tim Chen
     

25 Apr, 2013

3 commits


08 Jan, 2013

1 commit

  • Some hardware crypto drivers register asynchronous ctr(aes), which is left
    unused in IPSEC because rfc3686 template only supports synchronous block
    ciphers. Some other drivers register rfc3686(ctr(aes)) to workaround this
    limitation but not all.

    This patch changes rfc3686 to use asynchronous block ciphers, to allow async
    ctr(aes) algorithms to be utilized automatically by IPSEC.

    Signed-off-by: Jussi Kivilinna
    Acked-by: Herbert Xu
    Signed-off-by: Steffen Klassert

    Jussi Kivilinna
     

09 Nov, 2012

1 commit


24 Oct, 2012

2 commits


15 Oct, 2012

1 commit


27 Sep, 2012

2 commits

  • Add missing tests for ctr(camellia), lrw(camellia), xts(camellia) and ghash,
    as these have test vectors available.

    Signed-off-by: Jussi Kivilinna
    Acked-by: David S. Miller
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     
  • Ran into this while looking at some new crypto code using FPU
    hitting a WARN_ON_ONCE(!irq_fpu_usable()) in the kernel_fpu_begin()
    on a x86 kernel that uses the new eagerfpu model. In short, current eagerfpu
    changes return 0 for interrupted_kernel_fpu_idle() and the in_interrupt()
    thinks it is in the interrupt context because of the local_bh_disable().
    Thus resulting in the WARN_ON().

    Remove the local_bh_disable/enable() calls around the existing
    local_irq_disable/enable() calls. local_irq_disable/enable() already
    disables the BH.

    [ If there are any other legitimate users calling kernel_fpu_begin() from
    the process context but with BH disabled, then we can look into fixing the
    irq_fpu_usable() in future. ]

    Signed-off-by: Suresh Siddha
    Cc: Tim Chen
    Signed-off-by: Herbert Xu

    Suresh Siddha
     

01 Aug, 2012

2 commits


11 Jul, 2012

1 commit


14 Jun, 2012

1 commit


12 Jun, 2012

2 commits

  • This patch adds a x86_64/avx assembler implementation of the Twofish block
    cipher. The implementation processes eight blocks in parallel (two 4 block
    chunk AVX operations). The table-lookups are done in general-purpose registers.
    For small blocksizes the 3way-parallel functions from the twofish-x86_64-3way
    module are called. A good performance increase is provided for blocksizes
    greater or equal to 128B.

    Patch has been tested with tcrypt and automated filesystem tests.

    Tcrypt benchmark results:

    Intel Core i5-2500 CPU (fam:6, model:42, step:7)

    twofish-avx-x86_64 vs. twofish-x86_64-3way
    128bit key: (lrw:256bit) (xts:256bit)
    size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec lrw-enc lrw-dec xts-enc xts-dec
    16B 0.96x 0.97x 1.00x 0.95x 0.97x 0.97x 0.96x 0.95x 0.95x 0.98x
    64B 0.99x 0.99x 1.00x 0.99x 0.98x 0.98x 0.99x 0.98x 0.99x 0.98x
    256B 1.20x 1.21x 1.00x 1.19x 1.15x 1.14x 1.19x 1.20x 1.18x 1.19x
    1024B 1.29x 1.30x 1.00x 1.28x 1.23x 1.24x 1.26x 1.28x 1.26x 1.27x
    8192B 1.31x 1.32x 1.00x 1.31x 1.25x 1.25x 1.28x 1.29x 1.28x 1.30x

    256bit key: (lrw:384bit) (xts:512bit)
    size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec lrw-enc lrw-dec xts-enc xts-dec
    16B 0.96x 0.96x 1.00x 0.96x 0.97x 0.98x 0.95x 0.95x 0.95x 0.96x
    64B 1.00x 0.99x 1.00x 0.98x 0.98x 1.01x 0.98x 0.98x 0.98x 0.98x
    256B 1.20x 1.21x 1.00x 1.21x 1.15x 1.15x 1.19x 1.20x 1.18x 1.19x
    1024B 1.29x 1.30x 1.00x 1.28x 1.23x 1.23x 1.26x 1.27x 1.26x 1.27x
    8192B 1.31x 1.33x 1.00x 1.31x 1.26x 1.26x 1.29x 1.29x 1.28x 1.30x

    twofish-avx-x86_64 vs aes-asm (8kB block):
    128bit 256bit
    ecb-enc 1.19x 1.63x
    ecb-dec 1.18x 1.62x
    cbc-enc 0.75x 1.03x
    cbc-dec 1.23x 1.67x
    ctr-enc 1.24x 1.65x
    ctr-dec 1.24x 1.65x
    lrw-enc 1.15x 1.53x
    lrw-dec 1.14x 1.52x
    xts-enc 1.16x 1.56x
    xts-dec 1.16x 1.56x

    Signed-off-by: Johannes Goetzfried
    Signed-off-by: Herbert Xu

    Johannes Goetzfried
     
  • Signed-off-by: Sonic Zhang
    Acked-by: Mike Frysinger
    Signed-off-by: Herbert Xu

    Sonic Zhang
     

14 Mar, 2012

1 commit


09 Nov, 2011

7 commits


21 Oct, 2011

1 commit