blob: 8be2ef35ca408e0cef21a7faad8564895beb8f60 [file] [log] [blame]
/*
* Copyright 2015 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 __TPM2_OBJECT_FP_H
#define __TPM2_OBJECT_FP_H
BOOL AreAttributesForParent(
OBJECT *parentObject // IN: parent handle
);
TPMI_YES_NO ObjectCapGetLoaded(
TPMI_DH_OBJECT handle, // IN: start handle
UINT32 count, // IN: count of returned handles
TPML_HANDLE *handleList // OUT: list of handle
);
void ObjectCleanupEvict(
void
);
void ObjectComputeName(
TPMT_PUBLIC *publicArea, // IN: public area of an object
TPM2B_NAME *name // OUT: name of the object
);
void ObjectComputeQualifiedName(
TPM2B_NAME *parentQN, // IN: parent's qualified name
TPM_ALG_ID nameAlg, // IN: name hash
TPM2B_NAME *name, // IN: name of the object
TPM2B_NAME *qualifiedName // OUT: qualified name of the object
);
TPM_RC ObjectContextLoad(
OBJECT *object, // IN: object structure from saved context
TPMI_DH_OBJECT *handle // OUT: object handle
);
TPM_RC ObjectCreateEventSequence(
TPM2B_AUTH *auth, // IN: authValue
TPMI_DH_OBJECT *newHandle // OUT: sequence object handle
);
TPM_RC ObjectCreateHMACSequence(
TPMI_ALG_HASH hashAlg, // IN: hash algorithm
TPM_HANDLE handle, // IN: the handle associated with sequence
// object
TPM2B_AUTH *auth, // IN: authValue
TPMI_DH_OBJECT *newHandle // OUT: HMAC sequence object handle
);
TPM_RC ObjectCreateHashSequence(
TPMI_ALG_HASH hashAlg, // IN: hash algorithm
TPM2B_AUTH *auth, // IN: authValue
TPMI_DH_OBJECT *newHandle // OUT: sequence object handle
);
TPMI_RH_HIERARCHY ObjectDataGetHierarchy(
OBJECT *object // IN :object
);
BOOL ObjectDataIsStorage(
TPMT_PUBLIC *publicArea // IN: public area of the object
);
OBJECT* ObjectGet(
TPMI_DH_OBJECT handle // IN: handle of the object
);
TPMI_RH_HIERARCHY ObjectGetHierarchy(
TPMI_DH_OBJECT handle // IN :object handle
);
TPMI_ALG_HASH ObjectGetNameAlg(
TPMI_DH_OBJECT handle // IN: handle of the object
);
TPM_RC ObjectLoadEvict(
TPM_HANDLE *handle, // IN:OUT: evict object handle. If success, it
// will be replace by the loaded object handle
TPM_CC commandCode // IN: the command being processed
);
void ObjectFlush(
TPMI_DH_OBJECT handle // IN: handle to be freed
);
void ObjectFlushHierarchy(
TPMI_RH_HIERARCHY hierarchy // IN: hierarchy to be flush
);
OBJECT* ObjectGet(
TPMI_DH_OBJECT handle // IN: handle of the object
);
UINT16 ObjectGetName(
TPMI_DH_OBJECT handle, // IN: handle of the object
NAME *name // OUT: name of the object
);
void ObjectGetQualifiedName(
TPMI_DH_OBJECT handle, // IN: handle of the object
TPM2B_NAME *qualifiedName // OUT: qualified name of the object
);
BOOL ObjectIsPresent(
TPMI_DH_OBJECT handle // IN: handle to be checked
);
BOOL ObjectIsSequence(
OBJECT *object // IN: handle to be checked
);
BOOL ObjectIsStorage(
TPMI_DH_OBJECT handle // IN: object handle
);
TPM_RC ObjectLoad(
TPMI_RH_HIERARCHY hierarchy, // IN: hierarchy to which the object belongs
TPMT_PUBLIC *publicArea, // IN: public area
TPMT_SENSITIVE *sensitive, // IN: sensitive area (may be null)
TPM2B_NAME *name, // IN: object's name (may be null)
TPM_HANDLE parentHandle, // IN: handle of parent
BOOL skipChecks, // IN: flag to indicate if it is OK to skip
// consistency checks.
TPMI_DH_OBJECT *handle // OUT: object handle
);
void ObjectTerminateEvent(
void
);
#endif // __TPM2_OBJECT_FP_H