Software APIs
prng_sca_commands.h
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 
5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_PRNG_SCA_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_PRNG_SCA_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #define PRNGSCA_CMD_MAX_LFSR_BYTES 4
13 
14 // clang-format off
15 
16 // PRNG SCA arguments
17 
18 #define PRNGSCA_SUBCOMMAND(_, value) \
19  value(_, SeedPrng)
20 UJSON_SERDE_ENUM(PrngScaSubcommand, prng_sca_subcommand_t, PRNGSCA_SUBCOMMAND);
21 
22 #define PRNG_SCA_LFSR(field, string) \
23  field(seed, uint8_t, PRNGSCA_CMD_MAX_LFSR_BYTES) \
24  field(seed_length, size_t)
25 UJSON_SERDE_STRUCT(CryptotestPrngScaLfsr, cryptotest_prng_sca_lfsr_t, PRNG_SCA_LFSR);
26 
27 // clang-format on
28 
29 #ifdef __cplusplus
30 }
31 #endif
32 #endif // OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_PRNG_SCA_COMMANDS_H_