1 /* 2 * Copyright 2015 The Chromium OS Authors. All rights reserved. 3 * Use of this source code is governed by a BSD-style license that can be 4 * found in the LICENSE file. 5 */ 6 7 #ifndef __TPM2_OBJECT_FP_H 8 #define __TPM2_OBJECT_FP_H 9 10 BOOL AreAttributesForParent(OBJECT *parentObject // IN: parent handle 11 ); 12 TPMI_YES_NO ObjectCapGetLoaded(TPMI_DH_OBJECT handle, // IN: start handle 13 UINT32 count, // IN: count of returned handles 14 TPML_HANDLE *handleList // OUT: list of handle 15 ); 16 UINT32 ObjectCapGetTransientAvail(void); 17 void ObjectCleanupEvict(void); 18 void ObjectComputeName(TPMT_PUBLIC *publicArea, // IN: public area of an object 19 TPM2B_NAME *name // OUT: name of the object 20 ); 21 void ObjectComputeQualifiedName( 22 TPM2B_NAME *parentQN, // IN: parent's qualified name 23 TPM_ALG_ID nameAlg, // IN: name hash 24 TPM2B_NAME *name, // IN: name of the object 25 TPM2B_NAME *qualifiedName // OUT: qualified name of the object 26 ); 27 TPM_RC ObjectContextLoad( 28 OBJECT *object, // IN: object structure from saved context 29 TPMI_DH_OBJECT *handle // OUT: object handle 30 ); 31 TPM_RC ObjectCreateEventSequence( 32 TPM2B_AUTH *auth, // IN: authValue 33 TPMI_DH_OBJECT *newHandle // OUT: sequence object handle 34 ); 35 TPM_RC ObjectCreateHMACSequence( 36 TPMI_ALG_HASH hashAlg, // IN: hash algorithm 37 TPM_HANDLE handle, // IN: the handle associated with sequence object 38 TPM2B_AUTH *auth, // IN: authValue 39 TPMI_DH_OBJECT *newHandle // OUT: HMAC sequence object handle 40 ); 41 TPM_RC ObjectCreateHashSequence( 42 TPMI_ALG_HASH hashAlg, // IN: hash algorithm 43 TPM2B_AUTH *auth, // IN: authValue 44 TPMI_DH_OBJECT *newHandle // OUT: sequence object handle 45 ); 46 TPMI_RH_HIERARCHY ObjectDataGetHierarchy(OBJECT *object // IN :object 47 ); 48 BOOL ObjectDataIsStorage( 49 TPMT_PUBLIC *publicArea // IN: public area of the object 50 ); 51 OBJECT *ObjectGet(TPMI_DH_OBJECT handle // IN: handle of the object 52 ); 53 TPMI_RH_HIERARCHY ObjectGetHierarchy(TPMI_DH_OBJECT handle // IN :object handle 54 ); 55 TPMI_ALG_HASH ObjectGetNameAlg( 56 TPMI_DH_OBJECT handle // IN: handle of the object 57 ); 58 TPM_RC ObjectLoadEvict(TPM_HANDLE *handle, // IN:OUT: evict object handle. If 59 // success, it will be replace by 60 // the loaded object handle 61 TPM_CC commandCode // IN: the command being processed 62 ); 63 void ObjectFlush(TPMI_DH_OBJECT handle // IN: handle to be freed 64 ); 65 void ObjectFlushHierarchy( 66 TPMI_RH_HIERARCHY hierarchy // IN: hierarchy to be flush 67 ); 68 OBJECT *ObjectGet(TPMI_DH_OBJECT handle // IN: handle of the object 69 ); 70 UINT16 ObjectGetName(TPMI_DH_OBJECT handle, // IN: handle of the object 71 NAME *name // OUT: name of the object 72 ); 73 void ObjectGetQualifiedName( 74 TPMI_DH_OBJECT handle, // IN: handle of the object 75 TPM2B_NAME *qualifiedName // OUT: qualified name of the object 76 ); 77 BOOL ObjectIsPresent(TPMI_DH_OBJECT handle // IN: handle to be checked 78 ); 79 BOOL ObjectIsSequence(OBJECT *object // IN: handle to be checked 80 ); 81 BOOL ObjectIsStorage(TPMI_DH_OBJECT handle // IN: object handle 82 ); 83 TPM_RC ObjectLoad( 84 TPMI_RH_HIERARCHY hierarchy, // IN: hierarchy to which the object belongs 85 TPMT_PUBLIC *publicArea, // IN: public area 86 TPMT_SENSITIVE *sensitive, // IN: sensitive area (may be null) 87 TPM2B_NAME *name, // IN: object's name (may be null) 88 TPM_HANDLE parentHandle, // IN: handle of parent 89 BOOL skipChecks, // IN: flag to indicate if it is OK to skip consistency 90 // checks. 91 TPMI_DH_OBJECT *handle // OUT: object handle 92 ); 93 void ObjectStartup(void); 94 void ObjectTerminateEvent(void); 95 96 #endif // __TPM2_OBJECT_FP_H 97