• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   TCG defined values and structures.
3 
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution.  The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9 
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef _TCG_STORAGE_CORE_H_
16 #define _TCG_STORAGE_CORE_H_
17 
18 #include <Base.h>
19 
20 #pragma pack(1)
21 
22 /// UID in host native byte order
23 typedef UINT64 TCG_UID;
24 
25 #define TCG_TO_UID(b0, b1, b2, b3, b4, b5, b6, b7) (TCG_UID)( \
26   (UINT64)(b0)         | \
27   ((UINT64)(b1) << 8)  | \
28   ((UINT64)(b2) << 16) | \
29   ((UINT64)(b3) << 24) | \
30   ((UINT64)(b4) << 32) | \
31   ((UINT64)(b5) << 40) | \
32   ((UINT64)(b6) << 48) | \
33   ((UINT64)(b7) << 56))
34 
35 typedef struct {
36   UINT32     ReservedBE;
37   UINT16     ComIDBE;
38   UINT16     ComIDExtensionBE;
39   UINT32     OutstandingDataBE;
40   UINT32     MinTransferBE;
41   UINT32     LengthBE;
42   UINT8      Payload[0];
43 } TCG_COM_PACKET;
44 
45 typedef struct {
46   UINT32     TperSessionNumberBE;
47   UINT32     HostSessionNumberBE;
48   UINT32     SequenceNumberBE;
49   UINT16     ReservedBE;
50   UINT16     AckTypeBE;
51   UINT32     AcknowledgementBE;
52   UINT32     LengthBE;
53   UINT8      Payload[0];
54 } TCG_PACKET;
55 
56 #define TCG_SUBPACKET_ALIGNMENT 4 // 4-byte alignment per spec
57 
58 typedef struct {
59   UINT8      ReservedBE[6];
60   UINT16     KindBE;
61   UINT32     LengthBE;
62   UINT8      Payload[0];
63 } TCG_SUB_PACKET;
64 
65 #define SUBPACKET_KIND_DATA           0x0000
66 #define SUBPACKET_KIND_CREDIT_CONTROL 0x8001
67 
68 #define TCG_ATOM_TYPE_INTEGER 0x0
69 #define TCG_ATOM_TYPE_BYTE    0x1
70 typedef struct {
71   UINT8   Data : 6;
72   UINT8   Sign : 1;
73   UINT8   IsZero : 1;
74 } TCG_TINY_ATOM_BITS;
75 
76 typedef union {
77   UINT8               Raw;
78   TCG_TINY_ATOM_BITS  TinyAtomBits;
79 } TCG_SIMPLE_TOKEN_TINY_ATOM;
80 
81 
82 typedef struct {
83   UINT8   Length : 4;
84   UINT8   SignOrCont : 1;
85   UINT8   ByteOrInt : 1;
86   UINT8   IsZero : 1;
87   UINT8   IsOne : 1;
88 } TCG_SHORT_ATOM_BITS;
89 
90 typedef union {
91   UINT8                 RawHeader;
92   TCG_SHORT_ATOM_BITS   ShortAtomBits;
93 } TCG_SIMPLE_TOKEN_SHORT_ATOM;
94 
95 
96 #define TCG_MEDIUM_ATOM_LENGTH_HIGH_SHIFT 0x8
97 #define TCG_MEDIUM_ATOM_LENGTH_HIGH_MASK  0x7
98 
99 typedef struct {
100   UINT8  LengthHigh : 3;
101   UINT8  SignOrCont : 1;
102   UINT8  ByteOrInt : 1;
103   UINT8  IsZero : 1;
104   UINT8  IsOne1 : 1;
105   UINT8  IsOne2 : 1;
106   UINT8  LengthLow;
107 } TCG_MEDIUM_ATOM_BITS;
108 
109 typedef union {
110   UINT16                RawHeader;
111   TCG_MEDIUM_ATOM_BITS  MediumAtomBits;
112 } TCG_SIMPLE_TOKEN_MEDIUM_ATOM;
113 
114 
115 #define TCG_LONG_ATOM_LENGTH_HIGH_SHIFT 16
116 #define TCG_LONG_ATOM_LENGTH_MID_SHIFT  8
117 
118 typedef  struct {
119   UINT8   SignOrCont : 1;
120   UINT8   ByteOrInt : 1;
121   UINT8   Reserved : 2;
122   UINT8   IsZero : 1;
123   UINT8   IsOne1 : 1;
124   UINT8   IsOne2 : 1;
125   UINT8   IsOne3 : 1;
126   UINT8   LengthHigh;
127   UINT8   LengthMid;
128   UINT8   LengthLow;
129 } TCG_LONG_ATOM_BITS;
130 
131 typedef union {
132   UINT32              RawHeader;
133   TCG_LONG_ATOM_BITS  LongAtomBits;
134 } TCG_SIMPLE_TOKEN_LONG_ATOM;
135 
136 
137 // TCG Core Spec v2 - Table 04 - Token Types
138 typedef enum {
139   TcgTokenTypeReserved,
140   TcgTokenTypeTinyAtom,
141   TcgTokenTypeShortAtom,
142   TcgTokenTypeMediumAtom,
143   TcgTokenTypeLongAtom,
144   TcgTokenTypeStartList,
145   TcgTokenTypeEndList,
146   TcgTokenTypeStartName,
147   TcgTokenTypeEndName,
148   TcgTokenTypeCall,
149   TcgTokenTypeEndOfData,
150   TcgTokenTypeEndOfSession,
151   TcgTokenTypeStartTransaction,
152   TcgTokenTypeEndTransaction,
153   TcgTokenTypeEmptyAtom,
154 } TCG_TOKEN_TYPE;
155 
156 #pragma pack()
157 
158 #define TCG_TOKEN_SHORTATOM_MAX_BYTE_SIZE   0x0F
159 #define TCG_TOKEN_MEDIUMATOM_MAX_BYTE_SIZE  0x7FF
160 #define TCG_TOKEN_LONGATOM_MAX_BYTE_SIZE    0xFFFFFF
161 
162 #define TCG_TOKEN_TINYATOM_UNSIGNED_MAX_VALUE 0x3F
163 #define TCG_TOKEN_TINYATOM_SIGNED_MAX_VALUE   0x1F
164 #define TCG_TOKEN_TINYATOM_SIGNED_MIN_VALUE   -32
165 
166 // TOKEN TYPES
167 #define TCG_TOKEN_TINYATOM          0x00
168 #define TCG_TOKEN_TINYSIGNEDATOM    0x40
169 #define TCG_TOKEN_SHORTATOM         0x80
170 #define TCG_TOKEN_SHORTSIGNEDATOM   0x90
171 #define TCG_TOKEN_SHORTBYTESATOM    0xA0
172 #define TCG_TOKEN_MEDIUMATOM        0xC0
173 #define TCG_TOKEN_MEDIUMSIGNEDATOM  0xC8
174 #define TCG_TOKEN_MEDIUMBYTESATOM   0xD0
175 #define TCG_TOKEN_LONGATOM          0xE0
176 #define TCG_TOKEN_LONGSIGNEDATOM    0xE1
177 #define TCG_TOKEN_LONGBYTESATOM     0xE2
178 #define TCG_TOKEN_STARTLIST         0xF0
179 #define TCG_TOKEN_ENDLIST           0xF1
180 #define TCG_TOKEN_STARTNAME         0xF2
181 #define TCG_TOKEN_ENDNAME           0xF3
182 // 0xF4 - 0xF7 TCG Reserved
183 #define TCG_TOKEN_CALL              0xF8
184 #define TCG_TOKEN_ENDDATA           0xF9
185 #define TCG_TOKEN_ENDSESSION        0xFA
186 #define TCG_TOKEN_STARTTRANSACTION  0xFB
187 #define TCG_TOKEN_ENDTRANSACTION    0xFC
188 // 0xFD - 0xFE TCG Reserved
189 #define TCG_TOKEN_EMPTY             0xFF
190 
191 // CELLBLOCK reserved Names
192 #define TCG_CELL_BLOCK_TABLE_NAME           (UINT8)0x00
193 #define TCG_CELL_BLOCK_START_ROW_NAME       (UINT8)0x01
194 #define TCG_CELL_BLOCK_END_ROW_NAME         (UINT8)0x02
195 #define TCG_CELL_BLOCK_START_COLUMN_NAME    (UINT8)0x03
196 #define TCG_CELL_BLOCK_END_COLUMN_NAME      (UINT8)0x04
197 
198 // METHOD STATUS CODES
199 #define TCG_METHOD_STATUS_CODE_SUCCESS                  0x00
200 #define TCG_METHOD_STATUS_CODE_NOT_AUTHORIZED           0x01
201 #define TCG_METHOD_STATUS_CODE_OBSOLETE                 0x02
202 #define TCG_METHOD_STATUS_CODE_SP_BUSY                  0x03
203 #define TCG_METHOD_STATUS_CODE_SP_FAILED                0x04
204 #define TCG_METHOD_STATUS_CODE_SP_DISABLED              0x05
205 #define TCG_METHOD_STATUS_CODE_SP_FROZEN                0x06
206 #define TCG_METHOD_STATUS_CODE_NO_SESSIONS_AVAILABLE    0x07
207 #define TCG_METHOD_STATUS_CODE_UNIQUENESS_CONFLICT      0x08
208 #define TCG_METHOD_STATUS_CODE_INSUFFICIENT_SPACE       0x09
209 #define TCG_METHOD_STATUS_CODE_INSUFFICIENT_ROWS        0x0A
210 #define TCG_METHOD_STATUS_CODE_INVALID_PARAMETER        0x0C
211 #define TCG_METHOD_STATUS_CODE_OBSOLETE2                0x0D
212 #define TCG_METHOD_STATUS_CODE_OBSOLETE3                0x0E
213 #define TCG_METHOD_STATUS_CODE_TPER_MALFUNCTION         0x0F
214 #define TCG_METHOD_STATUS_CODE_TRANSACTION_FAILURE      0x10
215 #define TCG_METHOD_STATUS_CODE_RESPONSE_OVERFLOW        0x11
216 #define TCG_METHOD_STATUS_CODE_AUTHORITY_LOCKED_OUT     0x12
217 #define TCG_METHOD_STATUS_CODE_FAIL                     0x3F
218 
219 
220 // Feature Codes
221 #define TCG_FEATURE_INVALID             (UINT16)0x0000
222 #define TCG_FEATURE_TPER                (UINT16)0x0001
223 #define TCG_FEATURE_LOCKING             (UINT16)0x0002
224 #define TCG_FEATURE_GEOMETRY_REPORTING  (UINT16)0x0003
225 #define TCG_FEATURE_SINGLE_USER_MODE    (UINT16)0x0201
226 #define TCG_FEATURE_DATASTORE_TABLE     (UINT16)0x0202
227 #define TCG_FEATURE_OPAL_SSC_V1_0_0     (UINT16)0x0200
228 #define TCG_FEATURE_OPAL_SSC_V2_0_0     (UINT16)0x0203
229 #define TCG_FEATURE_OPAL_SSC_LITE       (UINT16)0x0301
230 #define TCG_FEATURE_PYRITE_SSC          (UINT16)0x0302
231 #define TCG_FEATURE_BLOCK_SID           (UINT16)0x0402
232 
233 // ACE Expression values
234 #define TCG_ACE_EXPRESSION_AND 0x0
235 #define TCG_ACE_EXPRESSION_OR  0x1
236 
237 /****************************************************************************
238 TRUSTED RECEIVE - supported security protocols list (SP_Specific = 0000h)
239 ATA 8 Rev6a Table 68 7.57.6.2
240 ****************************************************************************/
241 // Security Protocol IDs
242 #define TCG_SECURITY_PROTOCOL_INFO                   0x00
243 #define TCG_OPAL_SECURITY_PROTOCOL_1                 0x01
244 #define TCG_OPAL_SECURITY_PROTOCOL_2                 0x02
245 #define TCG_SECURITY_PROTOCOL_TCG3                   0x03
246 #define TCG_SECURITY_PROTOCOL_TCG4                   0x04
247 #define TCG_SECURITY_PROTOCOL_TCG5                   0x05
248 #define TCG_SECURITY_PROTOCOL_TCG6                   0x06
249 #define TCG_SECURITY_PROTOCOL_CBCS                   0x07
250 #define TCG_SECURITY_PROTOCOL_TAPE_DATA              0x20
251 #define TCG_SECURITY_PROTOCOL_DATA_ENCRYPT_CONFIG    0x21
252 #define TCG_SECURITY_PROTOCOL_SA_CREATION_CAPS       0x40
253 #define TCG_SECURITY_PROTOCOL_IKEV2_SCSI             0x41
254 #define TCG_SECURITY_PROTOCOL_JEDEC_UFS              0xEC
255 #define TCG_SECURITY_PROTOCOL_SDCARD_SECURITY        0xED
256 #define TCG_SECURITY_PROTOCOL_IEEE_1667              0xEE
257 #define TCG_SECURITY_PROTOCOL_ATA_DEVICE_SERVER_PASS 0xEF
258 
259 // Security Protocol Specific IDs
260 #define TCG_SP_SPECIFIC_PROTOCOL_LIST               0x0000
261 #define TCG_SP_SPECIFIC_PROTOCOL_LEVEL0_DISCOVERY   0x0001
262 
263 #define TCG_RESERVED_COMID 0x0000
264 
265 // Defined in TCG Storage Feature Set:Block SID Authentication spec,
266 // ComId used for BlockSid command is hardcode 0x0005.
267 #define TCG_BLOCKSID_COMID 0x0005
268 
269 #pragma pack(1)
270 typedef struct {
271   UINT8   Reserved[6];
272   UINT16  ListLength_BE;  // 6 - 7
273   UINT8   List[504];      // 8...
274 } TCG_SUPPORTED_SECURITY_PROTOCOLS;
275 
276 
277 // Level 0 Discovery
278 typedef struct {
279   UINT32 LengthBE;    // number of valid bytes in discovery response, not including length field
280   UINT16 VerMajorBE;
281   UINT16 VerMinorBE;
282   UINT8  Reserved[8];
283   UINT8  VendorUnique[32];
284 } TCG_LEVEL0_DISCOVERY_HEADER;
285 
286 typedef struct _TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER {
287   UINT16 FeatureCode_BE;
288   UINT8  Reserved : 4;
289   UINT8  Version : 4;
290   UINT8  Length;     // length of feature dependent data in bytes
291 } TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER;
292 
293 
294 typedef struct {
295   TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
296   UINT8                                LockingSupported : 1;
297   UINT8                                LockingEnabled : 1;   // means the locking security provider (SP) is enabled
298   UINT8                                Locked : 1;   // means at least 1 locking range is enabled
299   UINT8                                MediaEncryption : 1;
300   UINT8                                MbrEnabled : 1;
301   UINT8                                MbrDone : 1;
302   UINT8                                Reserved : 2;
303   UINT8                                Reserved515[11];
304 } TCG_LOCKING_FEATURE_DESCRIPTOR;
305 
306 typedef struct {
307   TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
308   UINT8                                SIDValueState : 1;
309   UINT8                                SIDBlockedState : 1;
310   UINT8                                Reserved4 : 6;
311   UINT8                                HardwareReset : 1;
312   UINT8                                Reserved5 : 7;
313   UINT8                                Reserved615[10];
314 } TCG_BLOCK_SID_FEATURE_DESCRIPTOR;
315 
316 
317 typedef struct {
318   TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
319   UINT8                                SyncSupported : 1;
320   UINT8                                AsyncSupported : 1;
321   UINT8                                AckNakSupported : 1;
322   UINT8                                BufferMgmtSupported : 1;
323   UINT8                                StreamingSupported : 1;
324   UINT8                                Reserved4b5 : 1;
325   UINT8                                ComIdMgmtSupported : 1;
326   UINT8                                Reserved4b7 : 1;
327   UINT8                                Reserved515[11];
328 } TCG_TPER_FEATURE_DESCRIPTOR;
329 
330 #pragma pack()
331 
332 // Special Purpose UIDs
333 #define TCG_UID_NULL                            TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
334 #define TCG_UID_THIS_SP                         TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01)
335 #define TCG_UID_SMUID                           TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF)
336 
337 // Session Manager Method UIDS
338 #define TCG_UID_SM_PROPERTIES                   TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01)
339 #define TCG_UID_SM_START_SESSION                TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02)
340 #define TCG_UID_SM_SYNC_SESSION                 TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03)
341 #define TCG_UID_SM_START_TRUSTED_SESSION        TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x04)
342 #define TCG_UID_SM_SYNC_TRUSTED_SESSION         TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x05)
343 #define TCG_UID_SM_CLOSE_SESSION                TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)
344 
345 // MethodID UIDs
346 #define TCG_UID_METHOD_DELETE_SP                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01)
347 #define TCG_UID_METHOD_CREATE_TABLE             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02)
348 #define TCG_UID_METHOD_DELETE                   TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03)
349 #define TCG_UID_METHOD_CREATE_ROW               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04)
350 #define TCG_UID_METHOD_DELETE_ROW               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05)
351 #define TCG_UID_METHOD_NEXT                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08)
352 #define TCG_UID_METHOD_GET_FREE_SPACE           TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09)
353 #define TCG_UID_METHOD_GET_FREE_ROWS            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A)
354 #define TCG_UID_METHOD_DELETE_METHOD            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0B)
355 #define TCG_UID_METHOD_GET_ACL                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D)
356 #define TCG_UID_METHOD_ADD_ACE                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E)
357 #define TCG_UID_METHOD_REMOVE_ACE               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F)
358 #define TCG_UID_METHOD_GEN_KEY                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10)
359 #define TCG_UID_METHOD_GET_PACKAGE              TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12)
360 #define TCG_UID_METHOD_SET_PACKAGE              TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13)
361 #define TCG_UID_METHOD_GET                      TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16)
362 #define TCG_UID_METHOD_SET                      TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17)
363 #define TCG_UID_METHOD_AUTHENTICATE             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1C)
364 #define TCG_UID_METHOD_ISSUE_SP                 TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x01)
365 #define TCG_UID_METHOD_GET_CLOCK                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x01)
366 #define TCG_UID_METHOD_RESET_CLOCK              TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x02)
367 #define TCG_UID_METHOD_SET_CLOCK_HIGH           TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x03)
368 #define TCG_UID_METHOD_SET_LAG_HIGH             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x04)
369 #define TCG_UID_METHOD_SET_CLOCK_LOW            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x05)
370 #define TCG_UID_METHOD_SET_LAG_LOW              TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)
371 #define TCG_UID_METHOD_INCREMENT_COUNTER        TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x07)
372 #define TCG_UID_METHOD_RANDOM                   TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x01)
373 #define TCG_UID_METHOD_SALT                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x02)
374 #define TCG_UID_METHOD_DECRYPT_INIT             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x03)
375 #define TCG_UID_METHOD_DECRYPT                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x04)
376 #define TCG_UID_METHOD_DECRYPT_FINALIZE         TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x05)
377 #define TCG_UID_METHOD_ENCRYPT_INIT             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x06)
378 #define TCG_UID_METHOD_ENCRYPT                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x07)
379 #define TCG_UID_METHOD_ENCRYPT_FINALIZE         TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x08)
380 #define TCG_UID_METHOD_HMAC_INIT                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x09)
381 #define TCG_UID_METHOD_HMAC                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0A)
382 #define TCG_UID_METHOD_HMAC_FINALIZE            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0B)
383 #define TCG_UID_METHOD_HASH_INIT                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0C)
384 #define TCG_UID_METHOD_HASH                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0D)
385 #define TCG_UID_METHOD_HASH_FINALIZE            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0E)
386 #define TCG_UID_METHOD_SIGN                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0F)
387 #define TCG_UID_METHOD_VERIFY                   TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x10)
388 #define TCG_UID_METHOD_XOR                      TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x11)
389 #define TCG_UID_METHOD_ADD_LOG                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x01)
390 #define TCG_UID_METHOD_CREATE_LOG               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x02)
391 #define TCG_UID_METHOD_CLEAR_LOG                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x03)
392 #define TCG_UID_METHOD_FLUSH_LOG                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x04)
393 
394 #endif // TCG_H_
395