crypto: sha256 - implement base layer for SHA-256
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 9 Apr 2015 10:55:34 +0000 (12:55 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 10 Apr 2015 13:39:39 +0000 (21:39 +0800)
commit11b8d5ef91388162103bf28f2e9d6dfd400d192d
treefc9891eb9efe548edf71fd43c02a1cd266a27dab
parentc4d5b9ffa31f7283b34cba991514dacae4c8d3de
crypto: sha256 - implement base layer for SHA-256

To reduce the number of copies of boilerplate code throughout
the tree, this patch implements generic glue for the SHA-256
algorithm. This allows a specific arch or hardware implementation
to only implement the special handling that it needs.

The users need to supply an implementation of

  void (sha256_block_fn)(struct sha256_state *sst, u8 const *src, int blocks)

and pass it to the SHA-256 base functions. For easy casting between the
prototype above and existing block functions that take a 'u32 state[]'
as their first argument, the 'state' member of struct sha256_state is
moved to the base of the struct.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/crypto/sha.h
include/crypto/sha256_base.h [new file with mode: 0644]