123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- #ifndef SRC_TPM2_SESSION_H_
- #define SRC_TPM2_SESSION_H_
- #include <stdbool.h>
- #include <tss2/tss2_esys.h>
- #include "tool_rc.h"
- typedef struct tpm2_session_data tpm2_session_data;
- typedef struct tpm2_session tpm2_session;
- tpm2_session_data *tpm2_session_data_new(TPM2_SE type);
- void tpm2_session_set_key(tpm2_session_data *data, TPMI_DH_OBJECT key);
- void tpm2_session_set_nonce_caller(tpm2_session_data *data, TPM2B_NONCE *nonce);
- tool_rc tpm2_session_get_noncetpm(ESYS_CONTEXT *ectx, tpm2_session *session,
- TPM2B_NONCE **nonce_tpm);
- void tpm2_session_set_bind(tpm2_session_data *data, TPMI_DH_ENTITY bind);
- void tpm2_session_set_symmetric(tpm2_session_data *data,
- TPMT_SYM_DEF *symmetric);
- void tpm2_session_set_authhash(tpm2_session_data *data, TPMI_ALG_HASH auth_hash);
- void tpm2_session_set_path(tpm2_session_data *data, const char *path);
- void tpm2_session_set_attrs(tpm2_session_data *data, TPMA_SESSION attrs);
- TPMI_ALG_HASH tpm2_session_get_authhash(tpm2_session *session);
- ESYS_TR tpm2_session_get_handle(tpm2_session *session);
- TPM2_SE tpm2_session_get_type(tpm2_session *session);
- static inline bool tpm2_session_is_trial(tpm2_session *session) {
- return tpm2_session_get_type(session) == TPM2_SE_TRIAL;
- }
- tool_rc tpm2_session_open(ESYS_CONTEXT *context, tpm2_session_data *data,
- tpm2_session **session);
- tool_rc tpm2_session_close(tpm2_session **session);
- tool_rc tpm2_session_restore(ESYS_CONTEXT *ctx, const char *path, bool is_final,
- tpm2_session **session);
- tool_rc tpm2_session_restart(ESYS_CONTEXT *context, tpm2_session *s);
- tpm2_session_data *tpm2_hmac_session_data_new(TPM2B_AUTH *auth_value);
- void tpm2_session_set_auth_value(tpm2_session *session, TPM2B_AUTH *auth_value);
- const TPM2B_AUTH *tpm2_session_get_auth_value(tpm2_session *session);
- #endif
|