From 8ef2a4e5f54c8623c98c396e378ec093629b849b Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Sun, 6 Jun 2021 23:01:11 -0400 Subject: Add support for the SHA-3 core. --- hal.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'hal.h') diff --git a/hal.h b/hal.h index 99f0456..7adfd39 100644 --- a/hal.h +++ b/hal.h @@ -5,7 +5,7 @@ * * Authors: Joachim Strombergson, Paul Selkirk, Rob Austein * Copyright (c) 2015-2017, NORDUnet A/S All rights reserved. - * Copyright: 2019-2020, The Commons Conservancy Cryptech Project + * Copyright: 2019-2021, The Commons Conservancy Cryptech Project * SPDX-License-Identifier: BSD-3-Clause * * Redistribution and use in source and binary forms, with or without @@ -96,6 +96,9 @@ #define SHA512_NAME "sha2-512" #define SHA512_VERSION "0.81" +#define SHA3_NAME "sha3 " +#define SHA3_VERSION "0.10" + #define AES_CORE_NAME "aes " #define AES_CORE_VERSION "0.70" @@ -304,13 +307,18 @@ typedef enum { HAL_DIGEST_ALGORITHM_SHA512_224, HAL_DIGEST_ALGORITHM_SHA512_256, HAL_DIGEST_ALGORITHM_SHA384, - HAL_DIGEST_ALGORITHM_SHA512 + HAL_DIGEST_ALGORITHM_SHA512, + HAL_DIGEST_ALGORITHM_SHA3_224, + HAL_DIGEST_ALGORITHM_SHA3_256, + HAL_DIGEST_ALGORITHM_SHA3_384, + HAL_DIGEST_ALGORITHM_SHA3_512 } hal_digest_algorithm_t; typedef struct { hal_digest_algorithm_t digest_algorithm; size_t block_length; size_t digest_length; + size_t state_length; size_t hash_state_length; size_t hmac_state_length; const uint8_t * const digest_algorithm_id; @@ -339,6 +347,10 @@ extern const hal_hash_descriptor_t hal_hash_sha512_224[1]; extern const hal_hash_descriptor_t hal_hash_sha512_256[1]; extern const hal_hash_descriptor_t hal_hash_sha384[1]; extern const hal_hash_descriptor_t hal_hash_sha512[1]; +extern const hal_hash_descriptor_t hal_hash_sha3_224[1]; +extern const hal_hash_descriptor_t hal_hash_sha3_256[1]; +extern const hal_hash_descriptor_t hal_hash_sha3_384[1]; +extern const hal_hash_descriptor_t hal_hash_sha3_512[1]; /* * Hash and HMAC functions. -- cgit v1.2.3