blob: 479b6096dde5c5ef0e398e781b3fe215da32bdfc [file] [log] [blame]
/* Software-based Trusted Platform Module (TPM) Emulator
* Copyright (C) 2004-2010 Mario Strasser <mast@gmx.net>
*
* This module is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* $Id: tpm_management.c 364 2010-02-11 10:24:45Z mast $
*/
#include "tpm_emulator.h"
#include "tpm_commands.h"
#include "tpm_data.h"
/*
* Administrative Functions ([TPM_Part3], Section 9)
*/
TPM_RESULT TPM_FieldUpgrade()
{
info("TPM_FieldUpgrade()");
/* nothing to do so far */
return TPM_SUCCESS;
}
TPM_RESULT TPM_SetRedirection(TPM_KEY_HANDLE keyHandle,
TPM_REDIR_COMMAND redirCmd, UINT32 inputDataSize,
BYTE *inputData, TPM_AUTH *auth1)
{
info("TPM_SetRedirection()");
/* this command is not supported by the TPM emulator */
return TPM_DISABLED_CMD;
}
TPM_RESULT TPM_ResetLockValue(TPM_AUTH *auth1)
{
TPM_RESULT res;
info("TPM_ResetLockValue");
if (tpmData.stclear.data.disableResetLock) return TPM_AUTHFAIL;
res = tpm_verify_auth(auth1, tpmData.permanent.data.ownerAuth, TPM_KH_OWNER);
if (res != TPM_SUCCESS) {
tpmData.stclear.data.disableResetLock = TRUE;
return res;
}
/* reset dictionary attack mitigation mechanism */
return TPM_SUCCESS;
}