7 #ifndef IFAPI_KEYSTORE_H
8 #define IFAPI_KEYSTORE_H
13 #include "fapi_types.h"
15 #include "ifapi_policy_types.h"
16 #include "tss2_common.h"
17 #include "tss2_esys.h"
18 #include "tss2_policy.h"
19 #include "tss2_tpm2_types.h"
21 typedef UINT32 IFAPI_OBJECT_TYPE_CONSTANT;
22 #define IFAPI_OBJ_NONE 0
23 #define IFAPI_KEY_OBJ 1
24 #define IFAPI_NV_OBJ 2
25 #define IFAPI_EXT_PUB_KEY_OBJ 3
26 #define IFAPI_HIERARCHY_OBJ 4
27 #define IFAPI_DUPLICATE_OBJ 5
72 TPM2B_DIGEST authPolicy;
81 TPM2B_NV_PUBLIC
public;
114 enum FAPI_SEARCH_STATE { KSEARCH_INIT = 0, KSEARCH_SEARCH_OBJECT, KSEARCH_READ };
122 enum FAPI_SEARCH_STATE state;
128 char *defaultprofile;
130 const char *rel_path;
134 enum IFAPI_AUTHORIZATION_STATE {
139 AUTH_FLUSH_OLD_POLICY,
144 enum IFAPI_IO_STATE {
149 #define TSS2_OBJECT_TO_IFAPI_OBJECT(p) ((IFAPI_OBJECT *)(p))
169 enum IFAPI_AUTHORIZATION_STATE
171 enum IFAPI_IO_STATE state;
177 ifapi_check_valid_path(
const char *path);
181 const char *config_systemdir,
182 const char *config_userdir,
183 const char *config_defaultprofile);
203 ifapi_keystore_store_finish(
IFAPI_IO *io);
207 const char *searchpath,
226 TPM2B_NV_PUBLIC *nv_public,
230 ifapi_keystore_check_overwrite(
IFAPI_KEYSTORE *keystore,
const char *path);
233 ifapi_keystore_check_writeable(
IFAPI_KEYSTORE *keystore,
const char *path);
264 ifapi_check_provisioned(
IFAPI_KEYSTORE *keystore,
const char *rel_path,
bool *ok);
uint32_t ESYS_TR
Definition: tss2_esys.h:16
TSS2_RC ifapi_copy_ifapi_key_object(IFAPI_OBJECT *dest, const IFAPI_OBJECT *src)
Definition: ifapi_keystore.c:1568
TSS2_RC ifapi_keystore_object_does_not_exist(IFAPI_KEYSTORE *keystore, const char *path, const IFAPI_OBJECT *object)
Definition: ifapi_keystore.c:716
TSS2_RC ifapi_keystore_search_obj(IFAPI_KEYSTORE *keystore, IFAPI_IO *io, TPM2B_NAME *name, char **found_path)
Definition: ifapi_keystore.c:1186
TSS2_RC ifapi_copy_ifapi_hierarchy_object(IFAPI_OBJECT *dest, const IFAPI_OBJECT *src)
Definition: ifapi_keystore.c:1624
TSS2_RC ifapi_copy_ifapi_key(IFAPI_KEY *dest, const IFAPI_KEY *src)
Definition: ifapi_keystore.c:1381
TSS2_RC ifapi_copy_ifapi_hierarchy(IFAPI_HIERARCHY *dest, const IFAPI_HIERARCHY *src)
Definition: ifapi_keystore.c:1438
TSS2_RC ifapi_keystore_load_async(IFAPI_KEYSTORE *keystore, IFAPI_IO *io, const char *path)
Definition: ifapi_keystore.c:539
TSS2_RC ifapi_keystore_delete(IFAPI_KEYSTORE *keystore, char *path)
Definition: ifapi_keystore.c:915
TSS2_RC ifapi_keystore_remove_directories(IFAPI_KEYSTORE *keystore, const char *dir_name)
Definition: ifapi_keystore.c:993
TSS2_RC ifapi_keystore_search_nv_obj(IFAPI_KEYSTORE *keystore, IFAPI_IO *io, TPM2B_NV_PUBLIC *nv_public, char **found_path)
Definition: ifapi_keystore.c:1221
TSS2_RC ifapi_keystore_list_all(IFAPI_KEYSTORE *keystore, const char *searchpath, char ***results, size_t *numresults)
Definition: ifapi_keystore.c:875
TSS2_RC ifapi_keystore_initialize(IFAPI_KEYSTORE *keystore, const char *config_systemdir, const char *config_userdir, const char *config_defaultprofile)
Definition: ifapi_keystore.c:414
void ifapi_cleanup_ifapi_hierarchy(IFAPI_HIERARCHY *hierarchy)
Definition: ifapi_keystore.c:1501
void ifapi_cleanup_ifapi_ext_pub_key(IFAPI_EXT_PUB_KEY *key)
Definition: ifapi_keystore.c:1487
void ifapi_cleanup_ifapi_object(IFAPI_OBJECT *object)
Definition: ifapi_keystore.c:1669
void ifapi_cleanup_ifapi_keystore(IFAPI_KEYSTORE *keystore)
Definition: ifapi_keystore.c:1546
TSS2_RC ifapi_keystore_store_async(IFAPI_KEYSTORE *keystore, IFAPI_IO *io, const char *path, const IFAPI_OBJECT *object)
Definition: ifapi_keystore.c:643
void ifapi_cleanup_ifapi_duplicate(IFAPI_DUPLICATE *duplicate)
Definition: ifapi_keystore.c:1531
void ifapi_cleanup_ifapi_key(IFAPI_KEY *key)
Definition: ifapi_keystore.c:1468
void ifapi_cleanup_ifapi_nv(IFAPI_NV *nv)
Definition: ifapi_keystore.c:1514
Definition: ifapi_keystore.h:93
TPM2B_PRIVATE duplicate
Definition: ifapi_keystore.h:95
TPMS_POLICY * policy
Definition: ifapi_keystore.h:100
TPM2B_ENCRYPTED_SECRET encrypted_seed
Definition: ifapi_keystore.h:96
TPM2B_PUBLIC public_parent
Definition: ifapi_keystore.h:98
char * certificate
Definition: ifapi_keystore.h:99
Definition: ifapi_keystore.h:61
char * pem_ext_public
Definition: ifapi_keystore.h:62
char * certificate
Definition: ifapi_keystore.h:63
Definition: ifapi_keystore.h:69
bool authorized
Definition: ifapi_keystore.h:74
TPMI_YES_NO with_auth
Definition: ifapi_keystore.h:70
char * description
Definition: ifapi_keystore.h:71
TPM2B_NAME name
Definition: ifapi_keystore.h:75
Definition: ifapi_io.h:17
Definition: ifapi_keystore.h:118
char ** pathlist
Definition: ifapi_keystore.h:121
size_t numPaths
Definition: ifapi_keystore.h:120
size_t path_idx
Definition: ifapi_keystore.h:119
Definition: ifapi_keystore.h:31
char * policyInstance
Definition: ifapi_keystore.h:36
UINT8_ARY serialization
Definition: ifapi_keystore.h:34
TPMI_YES_NO ek_profile
Definition: ifapi_keystore.h:48
UINT32 persistent_handle
Definition: ifapi_keystore.h:32
TPM2B_CREATION_DATA creationData
Definition: ifapi_keystore.h:38
bool auth_primary_set
Definition: ifapi_keystore.h:53
TPMI_YES_NO delete_prohibited
Definition: ifapi_keystore.h:47
TPMU_PUBLIC_ID unique_init
Definition: ifapi_keystore.h:52
TPMI_YES_NO with_auth
Definition: ifapi_keystore.h:45
TPM2B_DIGEST nonce
Definition: ifapi_keystore.h:50
TPM2B_DIGEST creationHash
Definition: ifapi_keystore.h:37
char * description
Definition: ifapi_keystore.h:40
UINT32 reset_count
Definition: ifapi_keystore.h:46
TPM2B_NAME name
Definition: ifapi_keystore.h:44
UINT8_ARY appData
Definition: ifapi_keystore.h:41
char * certificate
Definition: ifapi_keystore.h:42
TPMI_YES_NO unique_init_set
Definition: ifapi_keystore.h:51
TPMT_TK_CREATION creationTicket
Definition: ifapi_keystore.h:39
TPMT_SIG_SCHEME signing_scheme
Definition: ifapi_keystore.h:43
Definition: ifapi_keystore.h:125
Definition: ifapi_keystore.h:80
char * policyInstance
Definition: ifapi_keystore.h:84
UINT8_ARY serialization
Definition: ifapi_keystore.h:82
TPMI_YES_NO with_auth
Definition: ifapi_keystore.h:87
UINT32 hierarchy
Definition: ifapi_keystore.h:83
char * description
Definition: ifapi_keystore.h:85
UINT8_ARY appData
Definition: ifapi_keystore.h:86
char * event_log
Definition: ifapi_keystore.h:88
Definition: ifapi_keystore.h:153
TPMI_YES_NO system
Definition: ifapi_keystore.h:167
enum IFAPI_AUTHORIZATION_STATE authorization_state
Definition: ifapi_keystore.h:169
bool auth_changed
Definition: ifapi_keystore.h:173
const char * rel_path
Definition: ifapi_keystore.h:172
IFAPI_OBJECT_UNION misc
Definition: ifapi_keystore.h:166
IFAPI_OBJECT_TYPE_CONSTANT objectType
Definition: ifapi_keystore.h:165
Definition: ifapi_policy_types.h:281
Definition: fapi_types.h:15
Definition: ifapi_keystore.h:105
IFAPI_HIERARCHY hierarchy
Definition: ifapi_keystore.h:110
IFAPI_KEY key
Definition: ifapi_keystore.h:107
IFAPI_EXT_PUB_KEY ext_pub_key
Definition: ifapi_keystore.h:106
IFAPI_DUPLICATE key_tree
Definition: ifapi_keystore.h:109
IFAPI_NV nv
Definition: ifapi_keystore.h:108