5 #ifndef OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_HASH_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_HASH_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define HASH_CMD_MAX_MESSAGE_BYTES 17068
13 #define HASH_CMD_MAX_CUSTOMIZATION_STRING_BYTES 16
14 #define HASH_CMD_MAX_DIGEST_BYTES 256
18 #define HASH_ALGORITHM(_, value) \
30 UJSON_SERDE_ENUM(CryptotestHashAlgorithm, cryptotest_hash_algorithm_t, HASH_ALGORITHM);
32 #define SHAKE_DIGEST_LENGTH(field, string) \
34 UJSON_SERDE_STRUCT(CryptotestHashShakeDigestLength, cryptotest_hash_shake_digest_length_t, SHAKE_DIGEST_LENGTH);
36 #define HASH_MESSAGE(field, string) \
37 field(message, uint8_t, HASH_CMD_MAX_MESSAGE_BYTES) \
38 field(message_len, size_t) \
39 field(customization_string, uint8_t, HASH_CMD_MAX_CUSTOMIZATION_STRING_BYTES) \
40 field(customization_string_len, size_t)
41 UJSON_SERDE_STRUCT(CryptotestHashMessage, cryptotest_hash_message_t, HASH_MESSAGE);
43 #define HASH_OUTPUT(field, string) \
44 field(oneshot_digest, uint8_t, HASH_CMD_MAX_DIGEST_BYTES) \
45 field(stepwise_digest, uint8_t, HASH_CMD_MAX_DIGEST_BYTES) \
46 field(digest_len, size_t)
47 UJSON_SERDE_STRUCT(CryptotestHashOutput, cryptotest_hash_output_t, HASH_OUTPUT);