goto exit;
}
- if (TPMLIB_ChooseTPMVersion(tpmversion) != TPM_SUCCESS) {
- logprintf(STDERR_FILENO,
- "Error: Could not choose TPM version.\n");
+ if (tpmlib_choose_tpm_version(tpmversion) != TPM_SUCCESS) {
ret = EXIT_FAILURE;
goto exit;
}
exit(ret ? EXIT_FAILURE : EXIT_SUCCESS);
}
- if (TPMLIB_ChooseTPMVersion(mlp.tpmversion) != TPM_SUCCESS) {
- logprintf(STDERR_FILENO,
- "Error: Could not choose TPM version.\n");
+ if (tpmlib_choose_tpm_version(mlp.tpmversion) != TPM_SUCCESS)
exit(EXIT_FAILURE);
- }
if (handle_ctrlchannel_options(ctrlchdata, &mlp.cc) < 0 ||
handle_server_options(serverdata, &server) < 0) {
exit(ret ? EXIT_FAILURE : EXIT_SUCCESS);
}
- if (TPMLIB_ChooseTPMVersion(mlp.tpmversion) != TPM_SUCCESS) {
- logprintf(STDERR_FILENO,
- "Error: Could not choose TPM version.\n");
+ if (tpmlib_choose_tpm_version(mlp.tpmversion) != TPM_SUCCESS)
exit(EXIT_FAILURE);
- }
tpmstate_set_version(mlp.tpmversion);
return res;
}
-TPM_RESULT tpmlib_start(uint32_t flags, TPMLIB_TPMVersion tpmversion)
+TPM_RESULT tpmlib_choose_tpm_version(TPMLIB_TPMVersion tpmversion)
{
TPM_RESULT res;
if ((res = TPMLIB_ChooseTPMVersion(tpmversion)) != TPM_SUCCESS) {
+ const char *version = "TPM 1.2";
+
+ if (tpmversion == TPMLIB_TPM_VERSION_2)
+ version = "TPM 2";
logprintf(STDERR_FILENO,
- "Error: Could not choose TPM 2 implementation.\n");
- return res;
+ "Error: %s is not supported by libtpms.\n", version);
}
+ return res;
+}
+
+TPM_RESULT tpmlib_start(uint32_t flags, TPMLIB_TPMVersion tpmversion)
+{
+ TPM_RESULT res;
+
+ if ((res = tpmlib_choose_tpm_version(tpmversion)) != TPM_SUCCESS)
+ return res;
if ((res = TPMLIB_MainInit()) != TPM_SUCCESS) {
logprintf(STDERR_FILENO,
const char *tpmlib_get_blobname(uint32_t blobtype);
enum TPMLIB_StateType tpmlib_blobtype_to_statetype(uint32_t blobtype);
TPM_RESULT tpmlib_register_callbacks(struct libtpms_callbacks *cbs);
+TPM_RESULT tpmlib_choose_tpm_version(TPMLIB_TPMVersion tpmversion);
TPM_RESULT tpmlib_start(uint32_t flags, TPMLIB_TPMVersion tpmversion);
int tpmlib_get_tpm_property(enum TPMLIB_TPMProperty prop);
bool tpmlib_is_request_cancelable(TPMLIB_TPMVersion tpmversion,