diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-08-12 15:36:14 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2022-09-08 16:27:07 +0200 |
commit | bad4c73c37bf4c5ed85e5c41cfdb9a014eb08a17 (patch) | |
tree | 9306bc436a12d7a5a03a6484d3c954bd0a949727 /src/shared/tpm2-util.h | |
parent | 0d75641388d41e6c493682bc7e6380b981c6ad99 (diff) | |
download | systemd-bad4c73c37bf4c5ed85e5c41cfdb9a014eb08a17.tar.gz |
tpm2-util: allow external code to create tpm2 contexts
Diffstat (limited to 'src/shared/tpm2-util.h')
-rw-r--r-- | src/shared/tpm2-util.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/shared/tpm2-util.h b/src/shared/tpm2-util.h index fa3ac89da7..cc40027c1b 100644 --- a/src/shared/tpm2-util.h +++ b/src/shared/tpm2-util.h @@ -51,8 +51,28 @@ int dlopen_tpm2(void); int tpm2_seal(const char *device, uint32_t pcr_mask, const char *pin, void **ret_secret, size_t *ret_secret_size, void **ret_blob, size_t *ret_blob_size, void **ret_pcr_hash, size_t *ret_pcr_hash_size, uint16_t *ret_pcr_bank, uint16_t *ret_primary_alg); int tpm2_unseal(const char *device, uint32_t pcr_mask, uint16_t pcr_bank, uint16_t primary_alg, const void *blob, size_t blob_size, const void *pcr_hash, size_t pcr_hash_size, const char *pin, void **ret_secret, size_t *ret_secret_size); +struct tpm2_context { + void *tcti_dl; + TSS2_TCTI_CONTEXT *tcti_context; + ESYS_CONTEXT *esys_context; +}; + +ESYS_TR tpm2_flush_context_verbose(ESYS_CONTEXT *c, ESYS_TR handle); + +void tpm2_pcr_mask_to_selection(uint32_t mask, uint16_t bank, TPML_PCR_SELECTION *ret); + +static inline void Esys_Freep(void *p) { + if (*(void**) p) + sym_Esys_Free(*(void**) p); +} + +#else +struct tpm2_context; #endif +int tpm2_context_init(const char *device, struct tpm2_context *ret); +void tpm2_context_destroy(struct tpm2_context *c); + int tpm2_list_devices(void); int tpm2_find_device_auto(int log_level, char **ret); |