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