mbox series

[0/8] crypto: arm64+generic - SHA3/SHA-512/SM-3 roundup

Message ID 20180119120440.31556-1-ard.biesheuvel@linaro.org
Headers show
Series crypto: arm64+generic - SHA3/SHA-512/SM-3 roundup | expand

Message

Ard Biesheuvel Jan. 19, 2018, 12:04 p.m. UTC
This supersedes all outstanding patches from me related to SHA-3, SHA-512
or SM-3.

- fix a correctness issue in the SHA-3 code (#1) and a performance issue (#2),
  the first one is definitely a -stable candidate, the second one potentially
  as well
- patches #3 and #4 make the generic SHA-3 code reusable as a fallback for the
  accelerated code introduced in #6
- patch #5 adds some SHA-3 test cases
- patch #6 implements SHA-3 using special arm64 instructions
- patch #7 implements the Chinese SM3 secure hash algorithm using special
  arm64 instructions
- patch #8 contains some fixes for the recently queued SHA-512 arm64 code.

Ard Biesheuvel (8):
  crypto/generic: sha3 - fixes for alignment and big endian operation
  crypto/generic: sha3: rewrite KECCAK transform to help the compiler
    optimize
  crypto/generic: sha3 - simplify code
  crypto/generic: sha3 - export init/update/final routines
  crypto/testmgr: sha3 - add new testcases
  crypto/arm64: sha3 - new v8.2 Crypto Extensions implementation
  crypto/arm64: sm3 - new v8.2 Crypto Extensions implementation
  crypto/arm64: sha512 - fix/improve new v8.2 Crypto Extensions code

 arch/arm64/crypto/Kconfig          |  12 +
 arch/arm64/crypto/Makefile         |   6 +
 arch/arm64/crypto/sha3-ce-core.S   | 210 ++++++++
 arch/arm64/crypto/sha3-ce-glue.c   | 161 ++++++
 arch/arm64/crypto/sha512-ce-core.S | 145 +++---
 arch/arm64/crypto/sha512-glue.c    |   1 +
 arch/arm64/crypto/sm3-ce-core.S    | 141 +++++
 arch/arm64/crypto/sm3-ce-glue.c    |  92 ++++
 crypto/sha3_generic.c              | 332 ++++++------
 crypto/testmgr.h                   | 550 ++++++++++++++++++++
 include/crypto/sha3.h              |   6 +-
 11 files changed, 1413 insertions(+), 243 deletions(-)
 create mode 100644 arch/arm64/crypto/sha3-ce-core.S
 create mode 100644 arch/arm64/crypto/sha3-ce-glue.c
 create mode 100644 arch/arm64/crypto/sm3-ce-core.S
 create mode 100644 arch/arm64/crypto/sm3-ce-glue.c

-- 
2.11.0

Comments

Arnd Bergmann Jan. 22, 2018, 2:54 p.m. UTC | #1
On Fri, Jan 19, 2018 at 1:04 PM, Ard Biesheuvel
<ard.biesheuvel@linaro.org> wrote:
> This supersedes all outstanding patches from me related to SHA-3, SHA-512

> or SM-3.

>

> - fix a correctness issue in the SHA-3 code (#1) and a performance issue (#2),

>   the first one is definitely a -stable candidate, the second one potentially

>   as well

> - patches #3 and #4 make the generic SHA-3 code reusable as a fallback for the

>   accelerated code introduced in #6

> - patch #5 adds some SHA-3 test cases

> - patch #6 implements SHA-3 using special arm64 instructions

> - patch #7 implements the Chinese SM3 secure hash algorithm using special

>   arm64 instructions

> - patch #8 contains some fixes for the recently queued SHA-512 arm64 code.

>

> Ard Biesheuvel (8):

>   crypto/generic: sha3 - fixes for alignment and big endian operation

>   crypto/generic: sha3: rewrite KECCAK transform to help the compiler

>     optimize

>   crypto/generic: sha3 - simplify code

>   crypto/generic: sha3 - export init/update/final routines

>   crypto/testmgr: sha3 - add new testcases

>   crypto/arm64: sha3 - new v8.2 Crypto Extensions implementation

>   crypto/arm64: sm3 - new v8.2 Crypto Extensions implementation

>   crypto/arm64: sha512 - fix/improve new v8.2 Crypto Extensions code


I can confirm that patch 8 fixes the issues I saw earlier, it would be
good to have that merged quickly.

I'm doing a little more randconfig build testing here now, will write back by
the end of today in the unlikely case that if I find anything else wrong.

      Arnd
Arnd Bergmann Jan. 22, 2018, 8:51 p.m. UTC | #2
On Mon, Jan 22, 2018 at 3:54 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Fri, Jan 19, 2018 at 1:04 PM, Ard Biesheuvel

> I'm doing a little more randconfig build testing here now, will write back by

> the end of today in the unlikely case that if I find anything else wrong.


Did a few hundred randconfig builds, everything fine as expected.

       Arnd
Ard Biesheuvel Jan. 22, 2018, 8:59 p.m. UTC | #3
On 22 January 2018 at 20:51, Arnd Bergmann <arnd@arndb.de> wrote:
> On Mon, Jan 22, 2018 at 3:54 PM, Arnd Bergmann <arnd@arndb.de> wrote:

>> On Fri, Jan 19, 2018 at 1:04 PM, Ard Biesheuvel

>> I'm doing a little more randconfig build testing here now, will write back by

>> the end of today in the unlikely case that if I find anything else wrong.

>

> Did a few hundred randconfig builds, everything fine as expected.

>


Thanks Arnd
Herbert Xu Jan. 26, 2018, 3:46 p.m. UTC | #4
On Fri, Jan 19, 2018 at 12:04:32PM +0000, Ard Biesheuvel wrote:
> This supersedes all outstanding patches from me related to SHA-3, SHA-512

> or SM-3.

> 

> - fix a correctness issue in the SHA-3 code (#1) and a performance issue (#2),

>   the first one is definitely a -stable candidate, the second one potentially

>   as well

> - patches #3 and #4 make the generic SHA-3 code reusable as a fallback for the

>   accelerated code introduced in #6

> - patch #5 adds some SHA-3 test cases

> - patch #6 implements SHA-3 using special arm64 instructions

> - patch #7 implements the Chinese SM3 secure hash algorithm using special

>   arm64 instructions

> - patch #8 contains some fixes for the recently queued SHA-512 arm64 code.

> 

> Ard Biesheuvel (8):

>   crypto/generic: sha3 - fixes for alignment and big endian operation

>   crypto/generic: sha3: rewrite KECCAK transform to help the compiler

>     optimize

>   crypto/generic: sha3 - simplify code

>   crypto/generic: sha3 - export init/update/final routines

>   crypto/testmgr: sha3 - add new testcases

>   crypto/arm64: sha3 - new v8.2 Crypto Extensions implementation

>   crypto/arm64: sm3 - new v8.2 Crypto Extensions implementation

>   crypto/arm64: sha512 - fix/improve new v8.2 Crypto Extensions code

> 

>  arch/arm64/crypto/Kconfig          |  12 +

>  arch/arm64/crypto/Makefile         |   6 +

>  arch/arm64/crypto/sha3-ce-core.S   | 210 ++++++++

>  arch/arm64/crypto/sha3-ce-glue.c   | 161 ++++++

>  arch/arm64/crypto/sha512-ce-core.S | 145 +++---

>  arch/arm64/crypto/sha512-glue.c    |   1 +

>  arch/arm64/crypto/sm3-ce-core.S    | 141 +++++

>  arch/arm64/crypto/sm3-ce-glue.c    |  92 ++++

>  crypto/sha3_generic.c              | 332 ++++++------

>  crypto/testmgr.h                   | 550 ++++++++++++++++++++

>  include/crypto/sha3.h              |   6 +-

>  11 files changed, 1413 insertions(+), 243 deletions(-)

>  create mode 100644 arch/arm64/crypto/sha3-ce-core.S

>  create mode 100644 arch/arm64/crypto/sha3-ce-glue.c

>  create mode 100644 arch/arm64/crypto/sm3-ce-core.S

>  create mode 100644 arch/arm64/crypto/sm3-ce-glue.c


All applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt