mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-01-29 12:32:48 +00:00
Add HMAC test-cases for SHA3
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
parent
e3268afb11
commit
fe5adfe547
@ -609,3 +609,22 @@ hash_multi_part:PSA_ALG_SHA3_384:"6162636465666768626364656667686963646566676869
|
||||
PSA hash multi part: SHA3-512 Test Vector NIST 896 bits: "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"
|
||||
depends_on:PSA_WANT_ALG_SHA3_512
|
||||
hash_multi_part:PSA_ALG_SHA3_512:"61626364656667686263646566676869636465666768696a6465666768696a6b65666768696a6b6c666768696a6b6c6d6768696a6b6c6d6e68696a6b6c6d6e6f696a6b6c6d6e6f706a6b6c6d6e6f70716b6c6d6e6f7071726c6d6e6f707172736d6e6f70717273746e6f707172737475":"afebb2ef542e6579c50cad06d2e578f9f8dd6881d7dc824d26360feebf18a4fa73e3261122948efcfd492e74e82e2189ed0fb440d187f382270cb455f21dd185"
|
||||
|
||||
# HMAC test vectors generated in python with e.g.
|
||||
# import hmac; hmac.new(bytes([0xaa]*32), b'abc', 'SHA3-224').hexdigest()
|
||||
|
||||
PSA HMAC SHA3-224
|
||||
depends_on:PSA_WANT_ALG_SHA3_224
|
||||
hmac:PSA_ALG_SHA3_224:"abc":"bf0905154ad610b6a3d6d0b9a1c692494e987337d956624a066d7a1f"
|
||||
|
||||
PSA HMAC SHA3-256
|
||||
depends_on:PSA_WANT_ALG_SHA3_256
|
||||
hmac:PSA_ALG_SHA3_256:"abc":"a986419a162b6d4731a8e96e44a2c6e784d50137907b457c9fb77c62705dc4d9"
|
||||
|
||||
PSA HMAC SHA3-384
|
||||
depends_on:PSA_WANT_ALG_SHA3_384
|
||||
hmac:PSA_ALG_SHA3_384:"abc":"87b864ee25f8bfebd516eddd7cdd400d3c368a09e4b1fabaee5636da8a9c876c3f802c366537663910f2e6c5a8426381"
|
||||
|
||||
PSA HMAC SHA3-512
|
||||
depends_on:PSA_WANT_ALG_SHA3_512
|
||||
hmac:PSA_ALG_SHA3_512:"abc":"2cef45b6950e41a70bc85cb431b2161d47c9e2932187fa15d80e3b7af1da38aa8fe823a72efd7e536e5236a5b0798418d8c8f08b0de5fc262867bb3752b6482d"
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* BEGIN_HEADER */
|
||||
|
||||
#include <stdint.h>
|
||||
#include "psa/crypto.h"
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
@ -34,6 +35,40 @@ exit:
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hmac(int alg_arg, char *input, data_t *expected_mac)
|
||||
{
|
||||
psa_algorithm_t alg = PSA_ALG_HMAC(alg_arg);
|
||||
|
||||
mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
|
||||
psa_key_type_t key_type = PSA_KEY_TYPE_HMAC;
|
||||
const uint8_t key_data[] = { // 32 bytes of 0xaa
|
||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
|
||||
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
|
||||
};
|
||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
|
||||
PSA_ASSERT(psa_crypto_init());
|
||||
|
||||
psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE);
|
||||
psa_set_key_algorithm(&attributes, alg);
|
||||
psa_set_key_type(&attributes, key_type);
|
||||
PSA_ASSERT(psa_import_key(&attributes, key_data, sizeof(key_data), &key));
|
||||
|
||||
uint8_t mac[PSA_MAC_MAX_SIZE + 10] = { 0 };
|
||||
size_t mac_length = 0;
|
||||
|
||||
PSA_ASSERT(psa_mac_compute(key, alg, (uint8_t const *) input, strlen(input), mac, sizeof(mac), &mac_length));
|
||||
|
||||
ASSERT_COMPARE(expected_mac->x, expected_mac->len, mac, mac_length);
|
||||
|
||||
PSA_ASSERT(psa_destroy_key(key));
|
||||
exit:
|
||||
PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hash_verify(int alg_arg, data_t *input, data_t *expected_hash)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user