TPM_RESULT tpmlib_start(struct libtpms_callbacks *cbs, uint32_t flags) { TPM_RESULT res; if ((res = TPMLIB_RegisterCallbacks(cbs)) != TPM_SUCCESS) { logprintf(STDERR_FILENO, "Error: Could not register the callbacks.\n"); return res; } if ((res = TPMLIB_MainInit()) != TPM_SUCCESS) { logprintf(STDERR_FILENO, "Error: Could not initialize libtpms.\n"); return res; } if (flags & PTM_INIT_FLAG_DELETE_VOLATILE) { uint32_t tpm_number = 0; char *name = TPM_VOLATILESTATE_NAME; res = SWTPM_NVRAM_DeleteName(tpm_number, name, FALSE); if (res != TPM_SUCCESS) { logprintf(STDERR_FILENO, "Error: Could not delete the volatile " "state of the TPM.\n"); goto error_terminate; } } return TPM_SUCCESS; error_terminate: TPMLIB_Terminate(); return res; }
TPM_RESULT tpmlib_start(uint32_t flags, TPMLIB_TPMVersion tpmversion) { TPM_RESULT res; if ((res = TPMLIB_ChooseTPMVersion(tpmversion)) != TPM_SUCCESS) { logprintf(STDERR_FILENO, "Error: Could not choose TPM 2 implementation.\n"); return res; } if ((res = TPMLIB_MainInit()) != TPM_SUCCESS) { logprintf(STDERR_FILENO, "Error: Could not initialize libtpms.\n"); return res; } if (flags & PTM_INIT_FLAG_DELETE_VOLATILE) { uint32_t tpm_number = 0; char *name = TPM_VOLATILESTATE_NAME; res = SWTPM_NVRAM_DeleteName(tpm_number, name, FALSE); if (res != TPM_SUCCESS) { logprintf(STDERR_FILENO, "Error: Could not delete the volatile " "state of the TPM.\n"); goto error_terminate; } } return TPM_SUCCESS; error_terminate: TPMLIB_Terminate(); return res; }