5 #ifndef OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_ECDSA_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_ECDSA_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define ECDSA_CMD_MAX_MESSAGE_BYTES 64
13 #define ECDSA_CMD_MAX_SIGNATURE_SCALAR_BYTES 64
14 #define ECDSA_CMD_MAX_COORDINATE_BYTES 64
15 #define ECDSA_CMD_MAX_PRIVATE_KEY_SHARE_BYTES 64
28 #define ECDSA_OPERATION(_, value) \
31 UJSON_SERDE_ENUM(CryptotestEcdsaOperation, cryptotest_ecdsa_operation_t, ECDSA_OPERATION);
33 #define ECDSA_HASH_ALG(_, value) \
40 UJSON_SERDE_ENUM(CryptotestEcdsaHashAlg, cryptotest_ecdsa_hash_alg_t, ECDSA_HASH_ALG);
42 #define ECDSA_CURVE(_, value) \
45 UJSON_SERDE_ENUM(CryptotestEcdsaCurve, cryptotest_ecdsa_curve_t, ECDSA_CURVE);
47 #define ECDSA_MESSAGE(field, string) \
48 field(input, uint8_t, ECDSA_CMD_MAX_MESSAGE_BYTES) \
49 field(input_len, size_t)
50 UJSON_SERDE_STRUCT(CryptotestEcdsaMessage, cryptotest_ecdsa_message_t, ECDSA_MESSAGE);
52 #define ECDSA_SIGNATURE(field, string) \
53 field(r, uint8_t, ECDSA_CMD_MAX_SIGNATURE_SCALAR_BYTES) \
54 field(r_len, size_t) \
55 field(s, uint8_t, ECDSA_CMD_MAX_SIGNATURE_SCALAR_BYTES) \
57 UJSON_SERDE_STRUCT(CryptotestEcdsaSignature, cryptotest_ecdsa_signature_t, ECDSA_SIGNATURE);
59 #define ECDSA_COORDINATE(field, string) \
60 field(coordinate, uint8_t, ECDSA_CMD_MAX_COORDINATE_BYTES) \
61 field(coordinate_len, size_t)
62 UJSON_SERDE_STRUCT(CryptotestEcdsaCoordinate, cryptotest_ecdsa_coordinate_t, ECDSA_COORDINATE);
64 #define ECDSA_PRIVATE_KEY(field, string) \
65 field(d0, uint8_t, ECDSA_CMD_MAX_PRIVATE_KEY_SHARE_BYTES) \
66 field(d0_len, size_t) \
67 field(d1, uint8_t, ECDSA_CMD_MAX_PRIVATE_KEY_SHARE_BYTES) \
68 field(d1_len, size_t) \
69 field(unmasked_len, size_t)
70 UJSON_SERDE_STRUCT(CryptotestEcdsaPrivateKey, cryptotest_ecdsa_private_key_t, ECDSA_PRIVATE_KEY);
72 #define ECDSA_VERIFY_OUTPUT(_, value) \
75 UJSON_SERDE_ENUM(CryptotestEcdsaVerifyOutput, cryptotest_ecdsa_verify_output_t, ECDSA_VERIFY_OUTPUT);