1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /******************************************************************************* 3 * Copyright 2020, Intel 4 * Copyright 2020, Fraunhofer SIT sponsored by Infineon Technologies AG All 5 * rights reserved. 6 ******************************************************************************/ 7 #ifndef ESYS_DUMMY_DEFS_H 8 #define ESYS_DUMMY_DEFS_H 9 10 #ifdef HAVE_CONFIG_H 11 #include <config.h> 12 #endif 13 14 #include "tss2_esys.h" 15 #include "tss2-esys/esys_iutil.h" 16 17 /* 18 * Esys handles for dummy session and key objects, and initialization values for 19 * other objects, which can be used in ESAPI test calls 20 */ 21 22 #define DUMMY_TR_HANDLE_POLICY_SESSION ESYS_TR_MIN_OBJECT 23 #define DUMMY_TR_HANDLE_KEY ESYS_TR_MIN_OBJECT+1 24 #define DUMMY_TR_HANDLE_NV_INDEX ESYS_TR_MIN_OBJECT+2 25 #define DUMMY_TR_HANDLE_HIERARCHY_OWNER ESYS_TR_MIN_OBJECT+3 26 #define DUMMY_TR_HANDLE_HIERARCHY_PLATFORM ESYS_TR_MIN_OBJECT+4 27 #define DUMMY_TR_HANDLE_PRIVACY_ADMIN ESYS_TR_MIN_OBJECT+5 28 #define DUMMY_TR_HANDLE_HMAC_SESSION ESYS_TR_MIN_OBJECT+6 29 #define DUMMY_TR_HANDLE_LOCKOUT ESYS_TR_MIN_OBJECT+7 30 #define DUMMY_IN_PUBLIC_DATA { \ 31 .size = 0, \ 32 .publicArea = { \ 33 .type = TPM2_ALG_ECC, \ 34 .nameAlg = TPM2_ALG_SHA256, \ 35 .objectAttributes = (TPMA_OBJECT_USERWITHAUTH | \ 36 TPMA_OBJECT_RESTRICTED | \ 37 TPMA_OBJECT_SIGN_ENCRYPT | \ 38 TPMA_OBJECT_FIXEDTPM | \ 39 TPMA_OBJECT_FIXEDPARENT | \ 40 TPMA_OBJECT_SENSITIVEDATAORIGIN), \ 41 .authPolicy = { \ 42 .size = 0, \ 43 }, \ 44 .parameters.eccDetail = { \ 45 .symmetric = { \ 46 .algorithm = \ 47 TPM2_ALG_AES, \ 48 .keyBits.aes = \ 49 128, \ 50 .mode.aes = \ 51 TPM2_ALG_ECB, \ 52 }, \ 53 .scheme = { \ 54 .scheme = \ 55 TPM2_ALG_ECDSA, \ 56 .details = { \ 57 .ecdsa = \ 58 {. \ 59 hashAlg \ 60 = \ 61 TPM2_ALG_SHA256}}, \ 62 }, \ 63 .curveID = TPM2_ECC_NIST_P256, \ 64 .kdf = { \ 65 .scheme = TPM2_ALG_KDF1_SP800_56A, \ 66 .details = {}} \ 67 }, \ 68 .unique.ecc = { \ 69 .x = {.size = 0,.buffer = {}}, \ 70 .y = {.size = 0,.buffer = {}}, \ 71 }, \ 72 }, \ 73 } 74 75 #define DUMMY_TPMT_PUBLIC_PARAMS { \ 76 .type = TPM2_ALG_ECC, \ 77 .parameters.eccDetail = { \ 78 .symmetric = { \ 79 .algorithm = \ 80 TPM2_ALG_AES, \ 81 .keyBits.aes = \ 82 128, \ 83 .mode.aes = \ 84 TPM2_ALG_ECB, \ 85 }, \ 86 .scheme = { \ 87 .scheme = \ 88 TPM2_ALG_ECDSA, \ 89 .details = { \ 90 .ecdsa = \ 91 {. \ 92 hashAlg \ 93 = \ 94 TPM2_ALG_SHA256}}, \ 95 }, \ 96 .curveID = TPM2_ECC_NIST_P256, \ 97 .kdf = { \ 98 .scheme = TPM2_ALG_KDF1_SP800_56A, \ 99 .details = {}} \ 100 } \ 101 } 102 103 #define DUMMY_2B_DATA(NAME) { \ 104 .size = 20, \ 105 NAME = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, \ 106 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} \ 107 } 108 109 #define DUMMY_2B_DATA16(NAME) { \ 110 .size = 16, \ 111 NAME = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, \ 112 11, 12, 13, 14, 15, 16 } \ 113 } 114 115 #define DUMMY_2B_DATA0 { \ 116 .size = 0, \ 117 .buffer = {}, \ 118 } 119 120 #define DUMMY_SYMMETRIC {.algorithm = TPM2_ALG_AES, \ 121 .keyBits = {.aes = 128}, \ 122 .mode = {.aes = TPM2_ALG_CFB} \ 123 } 124 125 #define DUMMY_TPMT_TK_AUTH { .tag = TPM2_ST_AUTH_SIGNED , .hierarchy = TPM2_RH_OWNER, .digest = {0} } 126 127 #define DUMMY_TPMT_TK_CREATION { .tag = TPM2_ST_CREATION , .hierarchy = TPM2_RH_OWNER, .digest = {0} } 128 129 #define DUMMY_TPMT_TK_VERIFIED { .tag = TPM2_ST_VERIFIED , .hierarchy = TPM2_RH_OWNER, .digest = {0} } 130 131 #define DUMMY_TPMT_TK_HASHCHECK { .tag = TPM2_ST_HASHCHECK , .hierarchy = TPM2_RH_OWNER, .digest = {0} } 132 133 #define DUMMY_RSA_DECRYPT { .scheme = TPM2_ALG_RSAPSS } 134 135 #define DUMMY_TPMT_SIGNATURE { \ 136 .sigAlg = TPM2_ALG_RSAPSS, \ 137 .signature = { \ 138 .rsapss = { \ 139 .hash = TPM2_ALG_SHA1, .sig= {0} \ 140 } \ 141 } \ 142 }; 143 #endif 144