crypto: sha3 - Add SHA-3 hash algorithm
This patch adds the implementation of SHA3 algorithm in software and it's based on original implementation pushed in patch https://lwn.net/Articles/518415/ with additional changes to match the padding rules specified in SHA-3 specification. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
29
include/crypto/sha3.h
Normal file
29
include/crypto/sha3.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Common values for SHA-3 algorithms
|
||||
*/
|
||||
#ifndef __CRYPTO_SHA3_H__
|
||||
#define __CRYPTO_SHA3_H__
|
||||
|
||||
#define SHA3_224_DIGEST_SIZE (224 / 8)
|
||||
#define SHA3_224_BLOCK_SIZE (200 - 2 * SHA3_224_DIGEST_SIZE)
|
||||
|
||||
#define SHA3_256_DIGEST_SIZE (256 / 8)
|
||||
#define SHA3_256_BLOCK_SIZE (200 - 2 * SHA3_256_DIGEST_SIZE)
|
||||
|
||||
#define SHA3_384_DIGEST_SIZE (384 / 8)
|
||||
#define SHA3_384_BLOCK_SIZE (200 - 2 * SHA3_384_DIGEST_SIZE)
|
||||
|
||||
#define SHA3_512_DIGEST_SIZE (512 / 8)
|
||||
#define SHA3_512_BLOCK_SIZE (200 - 2 * SHA3_512_DIGEST_SIZE)
|
||||
|
||||
struct sha3_state {
|
||||
u64 st[25];
|
||||
unsigned int md_len;
|
||||
unsigned int rsiz;
|
||||
unsigned int rsizw;
|
||||
|
||||
unsigned int partial;
|
||||
u8 buf[SHA3_224_BLOCK_SIZE];
|
||||
};
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user