5 #ifndef OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_SPHINCSPLUS_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_SPHINCSPLUS_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define SPHINCSPLUS_CMD_MAX_MESSAGE_BYTES 3300
13 #define SPHINCSPLUS_CMD_MAX_SIGNATURE_BYTES 7856
14 #define SPHINCSPLUS_CMD_MAX_PUBLIC_KEY_BYTES 32
18 #define SPHINCSPLUS_OPERATION(_, value) \
20 UJSON_SERDE_ENUM(CryptotestSphincsPlusOperation, cryptotest_sphincsplus_operation_t, SPHINCSPLUS_OPERATION);
22 #define SPHINCSPLUS_HASH_ALG(_, value) \
25 UJSON_SERDE_ENUM(CryptotestSphincsPlusHashAlg, cryptotest_sphincsplus_hash_alg_t, SPHINCSPLUS_HASH_ALG);
27 #define SPHINCSPLUS_MESSAGE(field, string) \
28 field(message, uint8_t, SPHINCSPLUS_CMD_MAX_MESSAGE_BYTES) \
29 field(message_len, size_t)
30 UJSON_SERDE_STRUCT(CryptotestSphincsPlusMessage, cryptotest_sphincsplus_message_t, SPHINCSPLUS_MESSAGE);
32 #define SPHINCSPLUS_SIGNATURE(field, string) \
33 field(signature, uint8_t, SPHINCSPLUS_CMD_MAX_SIGNATURE_BYTES) \
34 field(signature_len, size_t)
35 UJSON_SERDE_STRUCT(CryptotestSphincsPlusSignature, cryptotest_sphincsplus_signature_t, SPHINCSPLUS_SIGNATURE);
37 #define SPHINCSPLUS_PUBLIC_KEY(field, string) \
38 field(public, uint8_t, SPHINCSPLUS_CMD_MAX_PUBLIC_KEY_BYTES) \
39 field(public_len, size_t)
40 UJSON_SERDE_STRUCT(CryptotestSphincsPlusPublicKey, cryptotest_sphincsplus_public_key_t, SPHINCSPLUS_PUBLIC_KEY);
42 #define SPHINCSPLUS_VERIFY_OUTPUT(_, value) \
45 UJSON_SERDE_ENUM(CryptotestSphincsPlusVerifyOutput, cryptotest_sphincsplus_verify_output_t, SPHINCSPLUS_VERIFY_OUTPUT);