blob: 889e52041d92627bba35f12296dbdf1e52f44038 [file] [log] [blame]
// Copyright (c) 2009,2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef _TPM_KEYCHAIN_TPM_KEYCHAIN_INTERNAL_H_
#define _TPM_KEYCHAIN_TPM_KEYCHAIN_INTERNAL_H_
#include "tpm_keychain.h"
struct tkc_context {
TSS_HCONTEXT hContext;
TSS_HTPM hTPM;
TSS_HKEY hSRK;
TSS_HKEY hKCHead;
UINT32 hTPMUsageAuth;
UINT32 hSRKUsageAuth;
UINT32 hKCHeadUsageAuth;
TSS_HPOLICY hTPMUsagePolicy;
TSS_HPOLICY hSRKUsagePolicy;
TSS_HPOLICY hKCHeadUsagePolicy;
UINT32 numPcrs;
};
tkc_context_t* tkc_open_context_internal(const char* tssServer,
const char* ownerPassword,
const char* srkPassword,
const char* keychainPassword,
UINT32 openFlags,
UINT32 tssVersion);
void tkc_close_context_internal(tkc_context_t** t);
TSS_RESULT tkc_destroy_internal(tkc_context_t* t);
TSS_BOOL tkc_verify_uuid_internal(tkc_context_t* t,
TSS_UUID* pUuidData,
TSS_KM_KEYINFO2* pKeyInfo);
TSS_RESULT tkc_add_uuid_internal(tkc_context_t* t,
TSS_UUID uuidData,
UINT32 keyType,
tkc_pcrs_selected_t* pcrsSelected,
const char* keyPassword,
UINT32 tssVersion);
TSS_RESULT tkc_remove_uuid_internal(tkc_context_t* t,
TSS_UUID uuidData);
TSS_RESULT tkc_list_uuid_internal(tkc_context_t* t,
TSS_UUID uuidData,
UINT32* pKeyCount,
TSS_BOOL needVerbose);
TSS_RESULT tkc_dump_uuid_internal(tkc_context_t* t,
TSS_HKEY hKey,
TSS_UUID uuidData,
UINT32 dumpType);
TSS_RESULT tkc_change_password_uuid_internal(tkc_context_t* t,
TSS_UUID uuidData,
const char* oldPassword,
const char* newPassword);
TSS_RESULT tkc_resetlock_internal(tkc_context_t* t);
#endif // _TPM_KEYCHAIN_TPM_KEYCHAIN_INTERNAL_H_