| Adds a new "tpm12-ownerauth" update type. This can be used on TPMs that already |
| have an owner. The owner password is assumed to be the well-known secret, i.e. |
| the auth secret used for communication with the TPM is the SHA-1 hash of 20 |
| zero bytes. We check that owner authentication using this secret is successful |
| during the preparation phase before the actual update attempt starts. |
| |
| --- a/TPMFactoryUpd/CommandFlow_TpmUpdate.c |
| +++ b/TPMFactoryUpd/CommandFlow_TpmUpdate.c |
| @@ -313,7 +313,7 @@ CommandFlow_TpmUpdate_UpdateFirmware( |
| } |
| |
| // Set TPM Owner authentication hash only in case of corresponding update type |
| - if (UPDATE_TYPE_TPM12_TAKEOWNERSHIP == unUpdateType) |
| + if (UPDATE_TYPE_TPM12_TAKEOWNERSHIP == unUpdateType || UPDATE_TYPE_TPM12_OWNERAUTH == unUpdateType) |
| { |
| unReturnValue = Platform_MemoryCopy(sFirmwareUpdateData.rgbOwnerAuthHash, sizeof(sFirmwareUpdateData.rgbOwnerAuthHash), s_ownerAuthData.authdata, sizeof(s_ownerAuthData.authdata)); |
| if (RC_SUCCESS != unReturnValue) |
| @@ -443,6 +443,12 @@ CommandFlow_TpmUpdate_PrepareFirmwareUpdate( |
| PpTpmUpdate->unReturnCode = CommandFlow_TpmUpdate_PrepareTPM12Ownership(); |
| unReturnValue = RC_SUCCESS; |
| } |
| + else if (UPDATE_TYPE_TPM12_OWNERAUTH == unUpdateType) |
| + { |
| + // Check if owner authorization works. |
| + PpTpmUpdate->unReturnCode = CommandFlow_TpmUpdate_PrepareTPM12OwnerAuth(); |
| + unReturnValue = RC_SUCCESS; |
| + } |
| else |
| { |
| unReturnValue = RC_E_FAIL; |
| @@ -519,7 +525,7 @@ CommandFlow_TpmUpdate_IsFirmwareUpdatable( |
| if (PpTpmUpdate->sTpmState.attribs.tpm12) |
| { |
| // Check if the correct update type is set |
| - if (UPDATE_TYPE_TPM12_DEFERREDPP != unUpdateType && UPDATE_TYPE_TPM12_TAKEOWNERSHIP != unUpdateType) |
| + if (UPDATE_TYPE_TPM12_DEFERREDPP != unUpdateType && UPDATE_TYPE_TPM12_TAKEOWNERSHIP != unUpdateType && UPDATE_TYPE_TPM12_OWNERAUTH != unUpdateType) |
| { |
| PpTpmUpdate->unReturnCode = RC_E_INVALID_UPDATE_OPTION; |
| ERROR_STORE(PpTpmUpdate->unReturnCode, L"Wrong update type detected. The underlying TPM is a TPM1.2."); |
| @@ -528,7 +534,7 @@ CommandFlow_TpmUpdate_IsFirmwareUpdatable( |
| } |
| |
| // Check if TPM already has an owner |
| - if (PpTpmUpdate->sTpmState.attribs.tpm12owner) |
| + if (PpTpmUpdate->sTpmState.attribs.tpm12owner && UPDATE_TYPE_TPM12_OWNERAUTH != unUpdateType) |
| { |
| PpTpmUpdate->unReturnCode = RC_E_TPM12_OWNED; |
| ERROR_STORE(PpTpmUpdate->unReturnCode, L"TPM1.2 Owner detected. Update cannot be done."); |
| @@ -742,6 +748,47 @@ CommandFlow_TpmUpdate_PrepareTPM12Ownership() |
| } |
| |
| /** |
| + * @brief Check that we have TPM owner auth. |
| + * @details The corresponding TPM Owner authentication is described in the user manual. |
| + * |
| + * @retval RC_SUCCESS TPM owner auth works as expected. |
| + * @retval RC_E_FAIL An unexpected error occurred. |
| + * @retval RC_E_TPM12_DISABLED_DEACTIVATED In case the TPM is disabled and deactivated. |
| + * @retval ... Error codes from Micro TSS functions |
| + */ |
| +_Check_return_ |
| +unsigned int |
| +CommandFlow_TpmUpdate_PrepareTPM12OwnerAuth() |
| +{ |
| + unsigned int unReturnValue = RC_SUCCESS; |
| + |
| + LOGGING_WRITE_LEVEL4(LOGGING_METHOD_ENTRY_STRING); |
| + |
| + do |
| + { |
| + unReturnValue = FirmwareUpdate_CheckOwnerAuthorization(s_ownerAuthData.authdata); |
| + if (RC_SUCCESS != unReturnValue) |
| + { |
| + ERROR_STORE(unReturnValue, L"CheckOwnerAuthorization failed!"); |
| + break; |
| + } |
| + } |
| + WHILE_FALSE_END; |
| + |
| + // Map return value in case TPM is disabled or deactivated to corresponding tool exit code |
| + if ((TPM_DEACTIVATED == (unReturnValue ^ RC_TPM_MASK)) || |
| + (TPM_DISABLED == (unReturnValue ^ RC_TPM_MASK))) |
| + { |
| + unReturnValue = RC_E_TPM12_DISABLED_DEACTIVATED; |
| + ERROR_STORE(unReturnValue, L"CheckOwnerAuthorization failed!"); |
| + } |
| + |
| + LOGGING_WRITE_LEVEL4_FMT(LOGGING_METHOD_EXIT_STRING_RET_VAL, unReturnValue); |
| + |
| + return unReturnValue; |
| +} |
| + |
| +/** |
| * @brief Parses the update configuration settings |
| * @details Parses the update configuration settings for a settings file based update flow |
| * |
| @@ -809,6 +856,14 @@ CommandFlow_TpmUpdate_Parse( |
| break; |
| } |
| } |
| + else if(0 == Platform_StringCompare(PwszValue, CMD_UPDATE_OPTION_TPM12_OWNERAUTH, PunValueSize, TRUE)) |
| + { |
| + if (!PropertyStorage_AddKeyUIntegerValuePair(PROPERTY_CONFIG_FILE_UPDATE_TYPE12, UPDATE_TYPE_TPM12_OWNERAUTH)) |
| + { |
| + ERROR_STORE_FMT(unReturnValue, wszErrorMsgFormat, PROPERTY_CONFIG_FILE_UPDATE_TYPE12); |
| + break; |
| + } |
| + } |
| else |
| { |
| unReturnValue = RC_E_INVALID_SETTING; |
| --- a/TPMFactoryUpd/CommandFlow_TpmUpdate.h |
| +++ b/TPMFactoryUpd/CommandFlow_TpmUpdate.h |
| @@ -85,6 +85,19 @@ unsigned int |
| CommandFlow_TpmUpdate_PrepareTPM12Ownership(); |
| |
| /** |
| + * @brief Check that we have TPM owner auth. |
| + * @details The corresponding TPM Owner authentication is described in the user manual. |
| + * |
| + * @retval RC_SUCCESS TPM owner auth works as expected. |
| + * @retval RC_E_FAIL An unexpected error occurred. |
| + * @retval RC_E_TPM12_DISABLED_DEACTIVATED In case the TPM is disabled and deactivated. |
| + * @retval ... Error codes from Micro TSS functions |
| + */ |
| +_Check_return_ |
| +unsigned int |
| +CommandFlow_TpmUpdate_PrepareTPM12OwnerAuth(); |
| + |
| +/** |
| * @brief Parse the update config settings file |
| * @details |
| * |
| --- a/TPMFactoryUpd/CommandLineParser.c |
| +++ b/TPMFactoryUpd/CommandLineParser.c |
| @@ -120,6 +120,10 @@ CommandLineParser_Parse( |
| { |
| unUpdateType = UPDATE_TYPE_CONFIG_FILE; |
| } |
| + else if (0 == Platform_StringCompare(wszValue, CMD_UPDATE_OPTION_TPM12_OWNERAUTH, RG_LEN(CMD_UPDATE_OPTION_TPM12_OWNERAUTH), TRUE)) |
| + { |
| + unUpdateType = UPDATE_TYPE_TPM12_OWNERAUTH; |
| + } |
| else |
| { |
| unReturnValue = RC_E_BAD_COMMANDLINE; |
| --- a/TPMFactoryUpd/Resource.h |
| +++ b/TPMFactoryUpd/Resource.h |
| @@ -83,6 +83,8 @@ |
| #define RES_TPM_UPDATE_PREPARE_PP_FAIL L" TPM1.2 Physical Presence is locked and Deferred Physical\n Presence is not set. The firmware cannot be updated." |
| #define RES_TPM_UPDATE_PREPARE_TAKEOWNERSHIP L" TPM1.2 Ownership preparation was successful." |
| #define RES_TPM_UPDATE_PREPARE_TAKEOWNERSHIP_FAIL L" TPM1.2 Ownership preparation failed." |
| +#define RES_TPM_UPDATE_PREPARE_OWNERAUTH L" TPM1.2 Owner auth preparation was successful." |
| +#define RES_TPM_UPDATE_PREPARE_OWNERAUTH_FAIL L" TPM1.2 Owner auth preparation failed." |
| #define RES_TPM_UPDATE_DO_NOT_TURN_OFF L" DO NOT TURN OFF OR SHUT DOWN THE SYSTEM DURING THE UPDATE PROCESS!" |
| #define RES_TPM_UPDATE_UPDATE L" Updating the TPM firmware ..." |
| #define RES_TPM_UPDATE_SUCCESS L" TPM Firmware Update completed successfully." |
| @@ -103,6 +105,7 @@ |
| #define CMD_UPDATE L"update" |
| #define CMD_UPDATE_OPTION_TPM12_DEFERREDPP L"tpm12-PP" |
| #define CMD_UPDATE_OPTION_TPM12_TAKEOWNERSHIP L"tpm12-takeownership" |
| +#define CMD_UPDATE_OPTION_TPM12_OWNERAUTH L"tpm12-ownerauth" |
| #define CMD_UPDATE_OPTION_TPM20_EMPTYPLATFORMAUTH L"tpm20-emptyplatformauth" |
| #define CMD_UPDATE_OPTION_CONFIG_FILE L"config-file" |
| #define CMD_FIRMWARE L"firmware" |
| @@ -128,38 +131,39 @@ |
| #define HELP_LINE12 L" Possible values for <update-type> are:" |
| #define HELP_LINE13 L" %ls - TPM1.2 with Physical Presence or Deferred Physical Presence." /* Use with format CMD_UPDATE_OPTION_TPM12_DEFERREDPP */ |
| #define HELP_LINE14 L" %ls - TPM1.2 with TPM Ownership taken by TPMFactoryUpd." /* Use with format CMD_UPDATE_OPTION_TPM12_TAKEOWNERSHIP */ |
| -#define HELP_LINE15 L" %ls - TPM2.0 with platformAuth set to Empty Buffer." /* Use with format CMD_UPDATE_OPTION_TPM20_EMPTYPLATFORMAUTH */ |
| -#define HELP_LINE16 L" %ls - Updates either a TPM1.2 or TPM2.0 to the firmware version" |
| -#define HELP_LINE17 L" configured in the configuration file. Requires the -config parameter." /* Use with format CMD_UPDATE_OPTION_CONFIG_FILE */ |
| -#define HELP_LINE18 L" Cannot be used with -%ls or -%ls parameter." /* Use with format CMD_INFO and CMD_TPM12_CLEAROWNERSHIP*/ |
| -#define HELP_LINE19 L"\n-%ls <firmware-file>" /* Use with format CMD_FIRMWARE */ |
| -#define HELP_LINE20 L" Specifies the path to the firmware image to be used for TPM Firmware Update." |
| -#define HELP_LINE21 L" Required if -%ls parameter is given with values tpm*." /* Use with format CMD_UPDATE*/ |
| -#define HELP_LINE22 L" Cannot be used with -%ls, -%ls or -%ls parameter." /* Use with format CMD_INFO, CMD_CONFIG and CMD_TPM12_CLEAROWNERSHIP*/ |
| -#define HELP_LINE23 L"\n-%ls <config-file>" /* Use with format CMD_CONFIG */ |
| -#define HELP_LINE24 L" Specifies the path to the configuration file to be used for TPM Firmware Update." |
| -#define HELP_LINE25 L" Required if -%ls parameter is given with value %ls." /* Use with format CMD_UPDATE, CMD_UPDATE_OPTION_CONFIG_FILE */ |
| -#define HELP_LINE26 L" Cannot be used with -%ls, -%ls or -%ls parameter." /* Use with format CMD_INFO, CMD_FIRMWARE and CMD_TPM12_CLEAROWNERSHIP*/ |
| -#define HELP_LINE27 L"\n-%ls [<log-file>]" /* Use with format CMD_LOG */ |
| -#define HELP_LINE28 L" Optional parameter. Activates logging for TPMFactoryUpd to the log file" |
| -#define HELP_LINE29 L" specified by <log-file>. Default value .\\TPMFactoryUpd.log is used if" |
| -#define HELP_LINE30 L" <log-file> is not given." |
| -#define HELP_LINE31 L" Note: total path and file name length must not exceed 260 characters" |
| -#define HELP_LINE32 L"\n-%ls" /* Use with format CMD_TPM12_CLEAROWNERSHIP */ |
| -#define HELP_LINE33 L" Clears the TPM Ownership taken by TPMFactoryUpd." |
| -#define HELP_LINE34 L" Cannot be used with -%ls, -%ls, -%ls or -%ls parameter." /* Use with format CMD_FIRMWARE, CMD_UPDATE, CMD_CONFIG and CMD_INFO */ |
| -#define HELP_LINE35 L"\n-%ls <mode> <path>" /* Use with format CMD_ACCESS_MODE */ |
| -#define HELP_LINE36 L" Optional parameter. Sets the mode the tool should use to connect to" |
| -#define HELP_LINE37 L" the TPM device." |
| -#define HELP_LINE38 L" Possible values for <mode> are:" |
| -#define HELP_LINE39 L" 1 - Memory based access (default value, only supported on x86 based systems" |
| -#define HELP_LINE40 L" with PCH TPM support)" |
| -#define HELP_LINE41 L" 3 - Linux TPM driver. The <path> option can be set to define a device path" |
| -#define HELP_LINE42 L" (default value: /dev/tpm0)" |
| -#define HELP_LINE43 L"\n-%ls" /* use with format CMD_DRY_RUN */ |
| -#define HELP_LINE44 L" Optional parameter. Do everything except actually updating the image." |
| -#define HELP_LINE45 L"\n-%ls" /* use with format CMD_IGNORE_ERROR_ON_COMPLETE */ |
| -#define HELP_LINE46 L" Optional parameter. Ignores TPM_FAIL errors from FieldUpgradeComplete." |
| +#define HELP_LINE15 L" %ls - TPM1.2 with TPM owner auth." /* Use with format CMD_UPDATE_OPTION_TPM12_OWNERAUTH */ |
| +#define HELP_LINE16 L" %ls - TPM2.0 with platformAuth set to Empty Buffer." /* Use with format CMD_UPDATE_OPTION_TPM20_EMPTYPLATFORMAUTH */ |
| +#define HELP_LINE17 L" %ls - Updates either a TPM1.2 or TPM2.0 to the firmware version" |
| +#define HELP_LINE18 L" configured in the configuration file. Requires the -config parameter." /* Use with format CMD_UPDATE_OPTION_CONFIG_FILE */ |
| +#define HELP_LINE19 L" Cannot be used with -%ls or -%ls parameter." /* Use with format CMD_INFO and CMD_TPM12_CLEAROWNERSHIP*/ |
| +#define HELP_LINE20 L"\n-%ls <firmware-file>" /* Use with format CMD_FIRMWARE */ |
| +#define HELP_LINE21 L" Specifies the path to the firmware image to be used for TPM Firmware Update." |
| +#define HELP_LINE22 L" Required if -%ls parameter is given with values tpm*." /* Use with format CMD_UPDATE*/ |
| +#define HELP_LINE23 L" Cannot be used with -%ls, -%ls or -%ls parameter." /* Use with format CMD_INFO, CMD_CONFIG and CMD_TPM12_CLEAROWNERSHIP*/ |
| +#define HELP_LINE24 L"\n-%ls <config-file>" /* Use with format CMD_CONFIG */ |
| +#define HELP_LINE25 L" Specifies the path to the configuration file to be used for TPM Firmware Update." |
| +#define HELP_LINE26 L" Required if -%ls parameter is given with value %ls." /* Use with format CMD_UPDATE, CMD_UPDATE_OPTION_CONFIG_FILE */ |
| +#define HELP_LINE27 L" Cannot be used with -%ls, -%ls or -%ls parameter." /* Use with format CMD_INFO, CMD_FIRMWARE and CMD_TPM12_CLEAROWNERSHIP*/ |
| +#define HELP_LINE28 L"\n-%ls [<log-file>]" /* Use with format CMD_LOG */ |
| +#define HELP_LINE29 L" Optional parameter. Activates logging for TPMFactoryUpd to the log file" |
| +#define HELP_LINE30 L" specified by <log-file>. Default value .\\TPMFactoryUpd.log is used if" |
| +#define HELP_LINE31 L" <log-file> is not given." |
| +#define HELP_LINE32 L" Note: total path and file name length must not exceed 260 characters" |
| +#define HELP_LINE33 L"\n-%ls" /* Use with format CMD_TPM12_CLEAROWNERSHIP */ |
| +#define HELP_LINE34 L" Clears the TPM Ownership taken by TPMFactoryUpd." |
| +#define HELP_LINE35 L" Cannot be used with -%ls, -%ls, -%ls or -%ls parameter." /* Use with format CMD_FIRMWARE, CMD_UPDATE, CMD_CONFIG and CMD_INFO */ |
| +#define HELP_LINE36 L"\n-%ls <mode> <path>" /* Use with format CMD_ACCESS_MODE */ |
| +#define HELP_LINE37 L" Optional parameter. Sets the mode the tool should use to connect to" |
| +#define HELP_LINE38 L" the TPM device." |
| +#define HELP_LINE39 L" Possible values for <mode> are:" |
| +#define HELP_LINE40 L" 1 - Memory based access (default value, only supported on x86 based systems" |
| +#define HELP_LINE41 L" with PCH TPM support)" |
| +#define HELP_LINE42 L" 3 - Linux TPM driver. The <path> option can be set to define a device path" |
| +#define HELP_LINE43 L" (default value: /dev/tpm0)" |
| +#define HELP_LINE44 L"\n-%ls" /* use with format CMD_DRY_RUN */ |
| +#define HELP_LINE45 L" Optional parameter. Do everything except actually updating the image." |
| +#define HELP_LINE46 L"\n-%ls" /* use with format CMD_IGNORE_ERROR_ON_COMPLETE */ |
| +#define HELP_LINE47 L" Optional parameter. Ignores TPM_FAIL errors from FieldUpgradeComplete." |
| |
| //{{NO_DEPENDENCIES}} |
| // Microsoft Visual C++ generated include file. |
| --- a/TPMFactoryUpd/Response.c |
| +++ b/TPMFactoryUpd/Response.c |
| @@ -524,6 +524,10 @@ Response_ShowUpdate( |
| { |
| CONSOLEIO_WRITE_BREAK(FALSE, RES_TPM_UPDATE_PREPARE_TAKEOWNERSHIP); |
| } |
| + else if (UPDATE_TYPE_TPM12_OWNERAUTH == unUpdateType) |
| + { |
| + CONSOLEIO_WRITE_BREAK(FALSE, RES_TPM_UPDATE_PREPARE_OWNERAUTH); |
| + } |
| |
| CONSOLEIO_WRITE_BREAK(FALSE, MENU_NEWLINE); |
| CONSOLEIO_WRITE_BREAK(FALSE, RES_TPM_UPDATE_DO_NOT_TURN_OFF); |
| @@ -540,6 +544,10 @@ Response_ShowUpdate( |
| { |
| CONSOLEIO_WRITE_BREAK(FALSE, RES_TPM_UPDATE_PREPARE_TAKEOWNERSHIP_FAIL); |
| } |
| + else if (UPDATE_TYPE_TPM12_OWNERAUTH == unUpdateType) |
| + { |
| + CONSOLEIO_WRITE_BREAK(FALSE, RES_TPM_UPDATE_PREPARE_OWNERAUTH_FAIL); |
| + } |
| } |
| } |
| |
| @@ -1017,40 +1025,41 @@ Response_ShowHelp() |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE12); |
| CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE13, CMD_UPDATE_OPTION_TPM12_DEFERREDPP); |
| CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE14, CMD_UPDATE_OPTION_TPM12_TAKEOWNERSHIP); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE15, CMD_UPDATE_OPTION_TPM20_EMPTYPLATFORMAUTH); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE16, CMD_UPDATE_OPTION_CONFIG_FILE); |
| - CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE17) |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE18, CMD_INFO, CMD_TPM12_CLEAROWNERSHIP); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE19, CMD_FIRMWARE); |
| - CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE20); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE21, CMD_UPDATE); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE22, CMD_INFO, CMD_CONFIG, CMD_TPM12_CLEAROWNERSHIP); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE23, CMD_CONFIG); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE24, CMD_UPDATE, CMD_UPDATE_OPTION_CONFIG_FILE); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE15, CMD_UPDATE_OPTION_TPM12_OWNERAUTH); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE16, CMD_UPDATE_OPTION_TPM20_EMPTYPLATFORMAUTH); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE17, CMD_UPDATE_OPTION_CONFIG_FILE); |
| + CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE18) |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE19, CMD_INFO, CMD_TPM12_CLEAROWNERSHIP); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE20, CMD_FIRMWARE); |
| + CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE21); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE22, CMD_UPDATE); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE23, CMD_INFO, CMD_CONFIG, CMD_TPM12_CLEAROWNERSHIP); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE24, CMD_CONFIG); |
| CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE25, CMD_UPDATE, CMD_UPDATE_OPTION_CONFIG_FILE); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE26, CMD_INFO, CMD_FIRMWARE, CMD_TPM12_CLEAROWNERSHIP); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE27, CMD_LOG); |
| - CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE28); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE26, CMD_UPDATE, CMD_UPDATE_OPTION_CONFIG_FILE); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE27, CMD_INFO, CMD_FIRMWARE, CMD_TPM12_CLEAROWNERSHIP); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE28, CMD_LOG); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE29); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE30); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE31, CMD_TPM12_CLEAROWNERSHIP); |
| + CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE31); |
| CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE32, CMD_TPM12_CLEAROWNERSHIP); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE33, CMD_FIRMWARE, CMD_UPDATE, CMD_CONFIG, CMD_INFO); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE34, CMD_INFO, CMD_UPDATE, CMD_FIRMWARE, CMD_CONFIG); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE33, CMD_TPM12_CLEAROWNERSHIP); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE34, CMD_FIRMWARE, CMD_UPDATE, CMD_CONFIG, CMD_INFO); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE35, CMD_INFO, CMD_UPDATE, CMD_FIRMWARE, CMD_CONFIG); |
| #ifdef LINUX |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE35, CMD_ACCESS_MODE); |
| - CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE36); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE36, CMD_ACCESS_MODE); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE37); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE38); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE39); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE40); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE41); |
| CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE42); |
| + CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE43); |
| #endif |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE43, CMD_DRY_RUN); |
| - CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE44); |
| - CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE45, CMD_IGNORE_ERROR_ON_COMPLETE); |
| - CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE46); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE44, CMD_DRY_RUN); |
| + CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE45); |
| + CONSOLEIO_WRITE_BREAK_FMT(FALSE, HELP_LINE46, CMD_IGNORE_ERROR_ON_COMPLETE); |
| + CONSOLEIO_WRITE_BREAK(FALSE, HELP_LINE47); |
| } |
| WHILE_FALSE_END; |
| |
| --- a/TPMFactoryUpd/TPMFactoryUpdStruct.h |
| +++ b/TPMFactoryUpd/TPMFactoryUpdStruct.h |
| @@ -72,7 +72,9 @@ typedef enum td_ENUM_UPDATE_TYPES |
| /// Update type for TPM2.0 using empty platformAuth |
| UPDATE_TYPE_TPM20_EMPTYPLATFORMAUTH = 3, |
| /// Update type for using settings from configuration file |
| - UPDATE_TYPE_CONFIG_FILE = 4 |
| + UPDATE_TYPE_CONFIG_FILE = 4, |
| + /// Update type for TPM1.2 using owner auth |
| + UPDATE_TYPE_TPM12_OWNERAUTH = 5 |
| } ENUM_UPDATE_TYPES; |
| |
| /** |