Software APIs
sw
device
tests
crypto
cryptotest
json
drbg_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_CRYPTO_CRYPTOTEST_JSON_DRBG_COMMANDS_H_
6
#define OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_DRBG_COMMANDS_H_
7
#include "sw/device/lib/ujson/ujson_derive.h"
8
#ifdef __cplusplus
9
extern
"C"
{
10
#endif
11
12
#define DRBG_CMD_MAX_ENTROPY_BYTES 48
13
#define DRBG_CMD_MAX_PERSONALIZATION_STRING_BYTES 48
14
#define DRBG_CMD_MAX_ADDITIONAL_INPUT_BYTES 48
15
#define DRBG_CMD_MAX_OUTPUT_BYTES 64
16
17
// clang-format off
18
19
#define DRBG_INPUT(field, string) \
20
field(entropy, uint8_t, DRBG_CMD_MAX_ENTROPY_BYTES) \
21
field(entropy_len, size_t) \
22
field(personalization_string, uint8_t, DRBG_CMD_MAX_PERSONALIZATION_STRING_BYTES) \
23
field(personalization_string_len, size_t) \
24
field(reseed, uint8_t) \
25
field(reseed_entropy, uint8_t, DRBG_CMD_MAX_ENTROPY_BYTES) \
26
field(reseed_entropy_len, size_t) \
27
field(reseed_additional_input, uint8_t, DRBG_CMD_MAX_ADDITIONAL_INPUT_BYTES) \
28
field(reseed_additional_input_len, size_t) \
29
field(additional_input_1, uint8_t, DRBG_CMD_MAX_ADDITIONAL_INPUT_BYTES) \
30
field(additional_input_1_len, size_t) \
31
field(additional_input_2, uint8_t, DRBG_CMD_MAX_ADDITIONAL_INPUT_BYTES) \
32
field(additional_input_2_len, size_t) \
33
field(output_len, size_t)
34
UJSON_SERDE_STRUCT(CryptotestDrbgInput, cryptotest_drbg_input_t, DRBG_INPUT);
35
36
#define DRBG_OUTPUT(field, string) \
37
field(output, uint8_t, DRBG_CMD_MAX_OUTPUT_BYTES) \
38
field(output_len, size_t)
39
UJSON_SERDE_STRUCT(CryptotestDrbgOutput, cryptotest_drbg_output_t, DRBG_OUTPUT);
40
41
// clang-format on
42
43
#ifdef __cplusplus
44
}
45
#endif
46
#endif
// OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_DRBG_COMMANDS_H_
Return to
OpenTitan Documentation