5 #ifndef OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_ECDH_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_ECDH_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define ECDH_CMD_MAX_PRIVATE_KEY_BYTES 48
13 #define ECDH_CMD_MAX_SHARED_SECRET_BYTES 48
14 #define ECDH_CMD_MAX_COORDINATE_BYTES 48
15 #define ECDH_CMD_MAX_PRIVATE_KEY_SHARE_BYTES 64
19 #define ECDH_CURVE(_, value) \
22 UJSON_SERDE_ENUM(CryptotestEcdhCurve, cryptotest_ecdh_curve_t, ECDH_CURVE);
24 #define ECDH_PRIVATE_KEY(field, string) \
25 field(d0, uint8_t, ECDH_CMD_MAX_PRIVATE_KEY_SHARE_BYTES) \
26 field(d0_len, size_t) \
27 field(d1, uint8_t, ECDH_CMD_MAX_PRIVATE_KEY_SHARE_BYTES) \
29 UJSON_SERDE_STRUCT(CryptotestEcdhPrivateKey, cryptotest_ecdh_private_key_t, ECDH_PRIVATE_KEY);
31 #define ECDH_COORDINATE(field, string) \
32 field(coordinate, uint8_t, ECDH_CMD_MAX_COORDINATE_BYTES) \
33 field(coordinate_len, size_t)
34 UJSON_SERDE_STRUCT(CryptotestEcdhCoordinate, cryptotest_ecdh_coordinate_t, ECDH_COORDINATE);
36 #define ECDH_DERIVE_OUTPUT(field, string) \
38 field(shared_secret, uint8_t, ECDH_CMD_MAX_SHARED_SECRET_BYTES) \
39 field(shared_secret_len, size_t)
40 UJSON_SERDE_STRUCT(CryptotestEcdhDeriveOutput, cryptotest_ecdh_derive_output_t, ECDH_DERIVE_OUTPUT);