xref: /aosp_15_r20/external/tpm2-tss/test/integration/test-options.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /***********************************************************************
3*758e9fbaSOystein Eftevaag  * Copyright (c) 2017-2018, Intel Corporation
4*758e9fbaSOystein Eftevaag  *
5*758e9fbaSOystein Eftevaag  * All rights reserved.
6*758e9fbaSOystein Eftevaag  ***********************************************************************/
7*758e9fbaSOystein Eftevaag #ifndef TEST_OPTIONS_H
8*758e9fbaSOystein Eftevaag #define TEST_OPTIONS_H
9*758e9fbaSOystein Eftevaag 
10*758e9fbaSOystein Eftevaag #include <stdint.h>
11*758e9fbaSOystein Eftevaag 
12*758e9fbaSOystein Eftevaag /* Default TCTI */
13*758e9fbaSOystein Eftevaag #define TCTI_DEFAULT      SOCKET_TCTI
14*758e9fbaSOystein Eftevaag #define TCTI_DEFAULT_STR  "socket"
15*758e9fbaSOystein Eftevaag 
16*758e9fbaSOystein Eftevaag /* Defaults for Device TCTI */
17*758e9fbaSOystein Eftevaag #define DEVICE_PATH_DEFAULT "/dev/tpm0"
18*758e9fbaSOystein Eftevaag 
19*758e9fbaSOystein Eftevaag /* Defaults for Socket TCTI connections */
20*758e9fbaSOystein Eftevaag #define HOSTNAME_DEFAULT "127.0.0.1"
21*758e9fbaSOystein Eftevaag #define PORT_DEFAULT     2321
22*758e9fbaSOystein Eftevaag 
23*758e9fbaSOystein Eftevaag /* environment variables holding TCTI config */
24*758e9fbaSOystein Eftevaag #define ENV_TCTI_NAME      "TPM20TEST_TCTI_NAME"
25*758e9fbaSOystein Eftevaag #define ENV_DEVICE_FILE    "TPM20TEST_DEVICE_FILE"
26*758e9fbaSOystein Eftevaag #define ENV_SOCKET_ADDRESS "TPM20TEST_SOCKET_ADDRESS"
27*758e9fbaSOystein Eftevaag #define ENV_SOCKET_PORT    "TPM20TEST_SOCKET_PORT"
28*758e9fbaSOystein Eftevaag 
29*758e9fbaSOystein Eftevaag typedef enum {
30*758e9fbaSOystein Eftevaag     UNKNOWN_TCTI,
31*758e9fbaSOystein Eftevaag     DEVICE_TCTI,
32*758e9fbaSOystein Eftevaag     SOCKET_TCTI,
33*758e9fbaSOystein Eftevaag     FUZZING_TCTI,
34*758e9fbaSOystein Eftevaag     N_TCTI,
35*758e9fbaSOystein Eftevaag } TCTI_TYPE;
36*758e9fbaSOystein Eftevaag 
37*758e9fbaSOystein Eftevaag typedef struct {
38*758e9fbaSOystein Eftevaag     TCTI_TYPE tcti_type;
39*758e9fbaSOystein Eftevaag     const char *device_file;
40*758e9fbaSOystein Eftevaag     const char *socket_address;
41*758e9fbaSOystein Eftevaag     uint16_t socket_port;
42*758e9fbaSOystein Eftevaag } test_opts_t;
43*758e9fbaSOystein Eftevaag 
44*758e9fbaSOystein Eftevaag /* functions to get test options from the user and to print helpful stuff */
45*758e9fbaSOystein Eftevaag const char *tcti_name_from_type(TCTI_TYPE tcti_type);
46*758e9fbaSOystein Eftevaag TCTI_TYPE tcti_type_from_name(char const *tcti_str);
47*758e9fbaSOystein Eftevaag int get_test_opts_from_env(test_opts_t * opts);
48*758e9fbaSOystein Eftevaag int sanity_check_test_opts(test_opts_t * opts);
49*758e9fbaSOystein Eftevaag void dump_test_opts(test_opts_t * opts);
50*758e9fbaSOystein Eftevaag 
51*758e9fbaSOystein Eftevaag #endif                          /* TEST_OPTIONS_H */
52