10 #define _SCHILY_SHA3_H 12 #ifndef _SCHILY_MCONFIG_H 24 #define sha3_224_hash_size 28 25 #define sha3_256_hash_size 32 26 #define sha3_384_hash_size 48 27 #define sha3_512_hash_size 64 28 #define sha3_max_permutation_size 25 29 #define sha3_max_rate_in_qwords 24 31 #define SHA3_224_DIGEST_LENGTH sha3_224_hash_size 32 #define SHA3_224_DIGEST_STRING_LENGTH (SHA3_224_DIGEST_LENGTH * 2 + 1) 33 #define SHA3_256_DIGEST_LENGTH sha3_256_hash_size 34 #define SHA3_256_DIGEST_STRING_LENGTH (SHA3_256_DIGEST_LENGTH * 2 + 1) 35 #define SHA3_384_DIGEST_LENGTH sha3_384_hash_size 36 #define SHA3_384_DIGEST_STRING_LENGTH (SHA3_384_DIGEST_LENGTH * 2 + 1) 37 #define SHA3_512_DIGEST_LENGTH sha3_512_hash_size 38 #define SHA3_512_DIGEST_STRING_LENGTH (SHA3_512_DIGEST_LENGTH * 2 + 1) 43 typedef struct sha3_ctx
46 UInt64_t
hash[sha3_max_permutation_size];
48 UInt64_t
message[sha3_max_rate_in_qwords];
57 void rhash_sha3_224_init
__PR((sha3_ctx *
ctx));
58 void rhash_sha3_256_init
__PR((sha3_ctx *
ctx));
59 void rhash_sha3_384_init
__PR((sha3_ctx *
ctx));
60 void rhash_sha3_512_init
__PR((sha3_ctx *
ctx));
61 void rhash_sha3_update
__PR((sha3_ctx *
ctx,
62 const unsigned char *
msg,
64 void rhash_sha3_final
__PR((sha3_ctx *
ctx,
unsigned char *
result));
66 void SHA3_224_Init
__PR((SHA3_CTX *
ctx));
67 void SHA3_256_Init
__PR((SHA3_CTX *
ctx));
68 void SHA3_384_Init
__PR((SHA3_CTX *
ctx));
69 void SHA3_512_Init
__PR((SHA3_CTX *
ctx));
70 void SHA3_Update
__PR((SHA3_CTX *
ctx,
71 const unsigned char *
msg,
76 #define rhash_keccak_224_init rhash_sha3_224_init 77 #define rhash_keccak_256_init rhash_sha3_256_init 78 #define rhash_keccak_384_init rhash_sha3_384_init 79 #define rhash_keccak_512_init rhash_sha3_512_init 80 #define rhash_keccak_update rhash_sha3_update 81 void rhash_keccak_final
__PR((sha3_ctx *
ctx,
unsigned char *
result));
static DWORD block_size(DWORD block)