SHA3/Keccak¶
This implementation is compatible with FIPS 202, rather than the original Keccak submission.
Macros¶
-
CF_SHA3_224_HASHSZ¶ The output size of SHA3-224: 28 bytes.
-
CF_SHA3_256_HASHSZ¶ The output size of SHA3-256: 32 bytes.
-
CF_SHA3_384_HASHSZ¶ The output size of SHA3-384: 48 bytes.
-
CF_SHA3_512_HASHSZ¶ The output size of SHA3-512: 64 bytes.
-
CF_SHA3_224_BLOCKSZ¶ The block size of SHA3-224.
-
CF_SHA3_256_BLOCKSZ¶ The block size of SHA3-256.
-
CF_SHA3_384_BLOCKSZ¶ The block size of SHA3-384.
-
CF_SHA3_512_BLOCKSZ¶ The block size of SHA3-512.
Types¶
Functions¶
-
void
cf_sha3_224_init(cf_sha3_context *ctx)¶
-
void
cf_sha3_256_init(cf_sha3_context *ctx)¶
-
void
cf_sha3_384_init(cf_sha3_context *ctx)¶
-
void
cf_sha3_512_init(cf_sha3_context *ctx)¶ Sets up ctx ready to hash a new message.
-
void
cf_sha3_224_update(cf_sha3_context *ctx, const void *data, size_t nbytes)¶
-
void
cf_sha3_256_update(cf_sha3_context *ctx, const void *data, size_t nbytes)¶
-
void
cf_sha3_384_update(cf_sha3_context *ctx, const void *data, size_t nbytes)¶
-
void
cf_sha3_512_update(cf_sha3_context *ctx, const void *data, size_t nbytes)¶ Hashes nbytes at data. Copies the data for processing later if there isn’t enough to make a full block.
-
void
cf_sha3_224_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_224_HASHSZ])¶
-
void
cf_sha3_256_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_256_HASHSZ])¶
-
void
cf_sha3_384_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_384_HASHSZ])¶
-
void
cf_sha3_512_digest(const cf_sha3_context *ctx, uint8_t hash[CF_SHA3_512_HASHSZ])¶ Finishes the hashing operation, writing result to hash.
This leaves ctx unchanged.
-
void
cf_sha3_224_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_224_HASHSZ])¶
-
void
cf_sha3_256_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_256_HASHSZ])¶
-
void
cf_sha3_384_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_384_HASHSZ])¶
-
void
cf_sha3_512_digest_final(cf_sha3_context *ctx, uint8_t hash[CF_SHA3_512_HASHSZ])¶ Finishes the hashing operation, writing result to hash.
This destroys the contents of ctx.