12345678910111213141516171819202122232425262728293031 |
- #include "log.h"
- #include "tpm2.h"
- #include "tpm2_auth_util.h"
- #include "tpm2_ctx_mgmt.h"
- tool_rc tpm2_ctx_mgmt_evictcontrol(ESYS_CONTEXT *ectx, ESYS_TR auth,
- tpm2_session *sess, ESYS_TR objhandle, TPMI_DH_PERSISTENT phandle,
- ESYS_TR *out_tr) {
- ESYS_TR shandle1 = ESYS_TR_NONE;
- tool_rc rc = tpm2_auth_util_get_shandle(ectx, auth, sess, &shandle1);
- if (rc != tool_rc_success) {
- return rc;
- }
- ESYS_TR out_handle;
- TSS2_RC rval = Esys_EvictControl(ectx, auth, objhandle, shandle1,
- ESYS_TR_NONE, ESYS_TR_NONE, phandle, &out_handle);
- if (rval != TSS2_RC_SUCCESS) {
- LOG_PERR(Esys_EvictControl, rval);
- return tool_rc_from_tpm(rval);
- }
- if (out_tr) {
- *out_tr = out_handle;
- return tool_rc_success;
- }
- return tpm2_close(ectx, &out_handle);
- }
|