blob: 02b83d901a6c16f7bb1d3058a92fda3d3e602099 [file] [log] [blame]
Vadim Bendeburyc4b77e02015-05-27 15:29:50 -07001/*
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
Vadim Bendeburybbd79002015-05-31 14:44:07 -070010BOOL AreAttributesForParent(
11 OBJECT *parentObject // IN: parent handle
12 );
13TPMI_YES_NO ObjectCapGetLoaded(
14 TPMI_DH_OBJECT handle, // IN: start handle
15 UINT32 count, // IN: count of returned handles
16 TPML_HANDLE *handleList // OUT: list of handle
17);
Vadim Bendeburyda725062015-05-31 14:41:18 -070018void ObjectCleanupEvict(
19 void
Vadim Bendeburybbd79002015-05-31 14:44:07 -070020 );
Vadim Bendebury3743ac12015-05-29 22:44:14 -070021void ObjectComputeName(
22 TPMT_PUBLIC *publicArea, // IN: public area of an object
23 TPM2B_NAME *name // OUT: name of the object
24);
25TPM_RC ObjectContextLoad(
26 OBJECT *object, // IN: object structure from saved context
27 TPMI_DH_OBJECT *handle // OUT: object handle
28 );
Vadim Bendeburycddcbfe2015-05-29 23:03:58 -070029TPM_RC ObjectCreateEventSequence(
30 TPM2B_AUTH *auth, // IN: authValue
31 TPMI_DH_OBJECT *newHandle // OUT: sequence object handle
32 );
Vadim Bendeburyd60f8602015-05-29 23:03:11 -070033TPM_RC ObjectCreateHMACSequence(
34 TPMI_ALG_HASH hashAlg, // IN: hash algorithm
35 TPM_HANDLE handle, // IN: the handle associated with sequence
36 // object
37 TPM2B_AUTH *auth, // IN: authValue
38 TPMI_DH_OBJECT *newHandle // OUT: HMAC sequence object handle
39 );
Vadim Bendeburycddcbfe2015-05-29 23:03:58 -070040TPM_RC ObjectCreateHashSequence(
41 TPMI_ALG_HASH hashAlg, // IN: hash algorithm
42 TPM2B_AUTH *auth, // IN: authValue
43 TPMI_DH_OBJECT *newHandle // OUT: sequence object handle
44 );
Vadim Bendebury3743ac12015-05-29 22:44:14 -070045TPMI_RH_HIERARCHY ObjectDataGetHierarchy(
46 OBJECT *object // IN :object
47);
Vadim Bendeburyd60f8602015-05-29 23:03:11 -070048OBJECT* ObjectGet(
49 TPMI_DH_OBJECT handle // IN: handle of the object
50);
Vadim Bendebury5bb7b9f2015-05-29 23:06:15 -070051TPMI_RH_HIERARCHY ObjectGetHierarchy(
52 TPMI_DH_OBJECT handle // IN :object handle
53 );
Vadim Bendebury889ec832015-05-26 17:11:06 -070054TPM_RC ObjectLoadEvict(
55 TPM_HANDLE *handle, // IN:OUT: evict object handle. If success, it
56 // will be replace by the loaded object handle
57 TPM_CC commandCode // IN: the command being processed
58 );
Vadim Bendeburyc34f4d92015-05-29 22:56:35 -070059void ObjectFlush(
60 TPMI_DH_OBJECT handle // IN: handle to be freed
61);
Vadim Bendebury59727bd2015-05-28 14:58:08 -070062void ObjectFlushHierarchy(
63 TPMI_RH_HIERARCHY hierarchy // IN: hierarchy to be flush
64);
Vadim Bendeburyc4b77e02015-05-27 15:29:50 -070065OBJECT* ObjectGet(
66 TPMI_DH_OBJECT handle // IN: handle of the object
67);
Vadim Bendebury1ba13282015-05-29 22:39:54 -070068UINT16 ObjectGetName(
69 TPMI_DH_OBJECT handle, // IN: handle of the object
70 NAME *name // OUT: name of the object
71);
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070072void ObjectGetQualifiedName(
73 TPMI_DH_OBJECT handle, // IN: handle of the object
74 TPM2B_NAME *qualifiedName // OUT: qualified name of the object
75);
Vadim Bendebury889ec832015-05-26 17:11:06 -070076BOOL ObjectIsPresent(
77 TPMI_DH_OBJECT handle // IN: handle to be checked
78 );
Vadim Bendebury3743ac12015-05-29 22:44:14 -070079BOOL ObjectIsSequence(
80 OBJECT *object // IN: handle to be checked
81 );
Vadim Bendebury30f6dee2015-05-29 22:51:10 -070082BOOL ObjectIsStorage(
83 TPMI_DH_OBJECT handle // IN: object handle
84 );
Vadim Bendeburydf6896c2015-05-29 22:48:49 -070085TPM_RC ObjectLoad(
86 TPMI_RH_HIERARCHY hierarchy, // IN: hierarchy to which the object belongs
87 TPMT_PUBLIC *publicArea, // IN: public area
88 TPMT_SENSITIVE *sensitive, // IN: sensitive area (may be null)
89 TPM2B_NAME *name, // IN: object's name (may be null)
90 TPM_HANDLE parentHandle, // IN: handle of parent
91 BOOL skipChecks, // IN: flag to indicate if it is OK to skip
92 // consistency checks.
93 TPMI_DH_OBJECT *handle // OUT: object handle
94);
Vadim Bendeburyda725062015-05-31 14:41:18 -070095void ObjectTerminateEvent(
96 void
97);
Vadim Bendeburyc4b77e02015-05-27 15:29:50 -070098
99#endif // __TPM2_OBJECT_FP_H