summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/IndustryStandard/TcgStorageCore.h
blob: 091888103463e9163b48891f0ad6016c2fbe5bd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
/** @file
  TCG defined values and structures.

  (TCG Storage Architecture Core Specification, Version 2.01, Revision 1.00,
  https://trustedcomputinggroup.org/tcg-storage-architecture-core-specification/)

  Check http://trustedcomputinggroup.org for latest specification updates.

Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _TCG_STORAGE_CORE_H_
#define _TCG_STORAGE_CORE_H_

#include <Base.h>

#pragma pack(1)

/// UID in host native byte order
typedef UINT64 TCG_UID;

#define TCG_TO_UID(b0, b1, b2, b3, b4, b5, b6, b7) (TCG_UID)( \
  (UINT64)(b0)         | \
  ((UINT64)(b1) << 8)  | \
  ((UINT64)(b2) << 16) | \
  ((UINT64)(b3) << 24) | \
  ((UINT64)(b4) << 32) | \
  ((UINT64)(b5) << 40) | \
  ((UINT64)(b6) << 48) | \
  ((UINT64)(b7) << 56))

typedef struct {
  UINT32     ReservedBE;
  UINT16     ComIDBE;
  UINT16     ComIDExtensionBE;
  UINT32     OutstandingDataBE;
  UINT32     MinTransferBE;
  UINT32     LengthBE;
  UINT8      Payload[0];
} TCG_COM_PACKET;

typedef struct {
  UINT32     TperSessionNumberBE;
  UINT32     HostSessionNumberBE;
  UINT32     SequenceNumberBE;
  UINT16     ReservedBE;
  UINT16     AckTypeBE;
  UINT32     AcknowledgementBE;
  UINT32     LengthBE;
  UINT8      Payload[0];
} TCG_PACKET;

#define TCG_SUBPACKET_ALIGNMENT 4 // 4-byte alignment per spec

typedef struct {
  UINT8      ReservedBE[6];
  UINT16     KindBE;
  UINT32     LengthBE;
  UINT8      Payload[0];
} TCG_SUB_PACKET;

#define SUBPACKET_KIND_DATA           0x0000
#define SUBPACKET_KIND_CREDIT_CONTROL 0x8001

#define TCG_ATOM_TYPE_INTEGER 0x0
#define TCG_ATOM_TYPE_BYTE    0x1
typedef struct {
  UINT8   Data : 6;
  UINT8   Sign : 1;
  UINT8   IsZero : 1;
} TCG_TINY_ATOM_BITS;

typedef union {
  UINT8               Raw;
  TCG_TINY_ATOM_BITS  TinyAtomBits;
} TCG_SIMPLE_TOKEN_TINY_ATOM;


typedef struct {
  UINT8   Length : 4;
  UINT8   SignOrCont : 1;
  UINT8   ByteOrInt : 1;
  UINT8   IsZero : 1;
  UINT8   IsOne : 1;
} TCG_SHORT_ATOM_BITS;

typedef union {
  UINT8                 RawHeader;
  TCG_SHORT_ATOM_BITS   ShortAtomBits;
} TCG_SIMPLE_TOKEN_SHORT_ATOM;


#define TCG_MEDIUM_ATOM_LENGTH_HIGH_SHIFT 0x8
#define TCG_MEDIUM_ATOM_LENGTH_HIGH_MASK  0x7

typedef struct {
  UINT8  LengthHigh : 3;
  UINT8  SignOrCont : 1;
  UINT8  ByteOrInt : 1;
  UINT8  IsZero : 1;
  UINT8  IsOne1 : 1;
  UINT8  IsOne2 : 1;
  UINT8  LengthLow;
} TCG_MEDIUM_ATOM_BITS;

typedef union {
  UINT16                RawHeader;
  TCG_MEDIUM_ATOM_BITS  MediumAtomBits;
} TCG_SIMPLE_TOKEN_MEDIUM_ATOM;


#define TCG_LONG_ATOM_LENGTH_HIGH_SHIFT 16
#define TCG_LONG_ATOM_LENGTH_MID_SHIFT  8

typedef  struct {
  UINT8   SignOrCont : 1;
  UINT8   ByteOrInt : 1;
  UINT8   Reserved : 2;
  UINT8   IsZero : 1;
  UINT8   IsOne1 : 1;
  UINT8   IsOne2 : 1;
  UINT8   IsOne3 : 1;
  UINT8   LengthHigh;
  UINT8   LengthMid;
  UINT8   LengthLow;
} TCG_LONG_ATOM_BITS;

typedef union {
  UINT32              RawHeader;
  TCG_LONG_ATOM_BITS  LongAtomBits;
} TCG_SIMPLE_TOKEN_LONG_ATOM;


// TCG Core Spec v2 - Table 04 - Token Types
typedef enum {
  TcgTokenTypeReserved,
  TcgTokenTypeTinyAtom,
  TcgTokenTypeShortAtom,
  TcgTokenTypeMediumAtom,
  TcgTokenTypeLongAtom,
  TcgTokenTypeStartList,
  TcgTokenTypeEndList,
  TcgTokenTypeStartName,
  TcgTokenTypeEndName,
  TcgTokenTypeCall,
  TcgTokenTypeEndOfData,
  TcgTokenTypeEndOfSession,
  TcgTokenTypeStartTransaction,
  TcgTokenTypeEndTransaction,
  TcgTokenTypeEmptyAtom,
} TCG_TOKEN_TYPE;

#pragma pack()

#define TCG_TOKEN_SHORTATOM_MAX_BYTE_SIZE   0x0F
#define TCG_TOKEN_MEDIUMATOM_MAX_BYTE_SIZE  0x7FF
#define TCG_TOKEN_LONGATOM_MAX_BYTE_SIZE    0xFFFFFF

#define TCG_TOKEN_TINYATOM_UNSIGNED_MAX_VALUE 0x3F
#define TCG_TOKEN_TINYATOM_SIGNED_MAX_VALUE   0x1F
#define TCG_TOKEN_TINYATOM_SIGNED_MIN_VALUE   -32

// TOKEN TYPES
#define TCG_TOKEN_TINYATOM          0x00
#define TCG_TOKEN_TINYSIGNEDATOM    0x40
#define TCG_TOKEN_SHORTATOM         0x80
#define TCG_TOKEN_SHORTSIGNEDATOM   0x90
#define TCG_TOKEN_SHORTBYTESATOM    0xA0
#define TCG_TOKEN_MEDIUMATOM        0xC0
#define TCG_TOKEN_MEDIUMSIGNEDATOM  0xC8
#define TCG_TOKEN_MEDIUMBYTESATOM   0xD0
#define TCG_TOKEN_LONGATOM          0xE0
#define TCG_TOKEN_LONGSIGNEDATOM    0xE1
#define TCG_TOKEN_LONGBYTESATOM     0xE2
#define TCG_TOKEN_STARTLIST         0xF0
#define TCG_TOKEN_ENDLIST           0xF1
#define TCG_TOKEN_STARTNAME         0xF2
#define TCG_TOKEN_ENDNAME           0xF3
// 0xF4 - 0xF7 TCG Reserved
#define TCG_TOKEN_CALL              0xF8
#define TCG_TOKEN_ENDDATA           0xF9
#define TCG_TOKEN_ENDSESSION        0xFA
#define TCG_TOKEN_STARTTRANSACTION  0xFB
#define TCG_TOKEN_ENDTRANSACTION    0xFC
// 0xFD - 0xFE TCG Reserved
#define TCG_TOKEN_EMPTY             0xFF

// CELLBLOCK reserved Names
#define TCG_CELL_BLOCK_TABLE_NAME           (UINT8)0x00
#define TCG_CELL_BLOCK_START_ROW_NAME       (UINT8)0x01
#define TCG_CELL_BLOCK_END_ROW_NAME         (UINT8)0x02
#define TCG_CELL_BLOCK_START_COLUMN_NAME    (UINT8)0x03
#define TCG_CELL_BLOCK_END_COLUMN_NAME      (UINT8)0x04

// METHOD STATUS CODES
#define TCG_METHOD_STATUS_CODE_SUCCESS                  0x00
#define TCG_METHOD_STATUS_CODE_NOT_AUTHORIZED           0x01
#define TCG_METHOD_STATUS_CODE_OBSOLETE                 0x02
#define TCG_METHOD_STATUS_CODE_SP_BUSY                  0x03
#define TCG_METHOD_STATUS_CODE_SP_FAILED                0x04
#define TCG_METHOD_STATUS_CODE_SP_DISABLED              0x05
#define TCG_METHOD_STATUS_CODE_SP_FROZEN                0x06
#define TCG_METHOD_STATUS_CODE_NO_SESSIONS_AVAILABLE    0x07
#define TCG_METHOD_STATUS_CODE_UNIQUENESS_CONFLICT      0x08
#define TCG_METHOD_STATUS_CODE_INSUFFICIENT_SPACE       0x09
#define TCG_METHOD_STATUS_CODE_INSUFFICIENT_ROWS        0x0A
#define TCG_METHOD_STATUS_CODE_INVALID_PARAMETER        0x0C
#define TCG_METHOD_STATUS_CODE_OBSOLETE2                0x0D
#define TCG_METHOD_STATUS_CODE_OBSOLETE3                0x0E
#define TCG_METHOD_STATUS_CODE_TPER_MALFUNCTION         0x0F
#define TCG_METHOD_STATUS_CODE_TRANSACTION_FAILURE      0x10
#define TCG_METHOD_STATUS_CODE_RESPONSE_OVERFLOW        0x11
#define TCG_METHOD_STATUS_CODE_AUTHORITY_LOCKED_OUT     0x12
#define TCG_METHOD_STATUS_CODE_FAIL                     0x3F


// Feature Codes
#define TCG_FEATURE_INVALID             (UINT16)0x0000
#define TCG_FEATURE_TPER                (UINT16)0x0001
#define TCG_FEATURE_LOCKING             (UINT16)0x0002
#define TCG_FEATURE_GEOMETRY_REPORTING  (UINT16)0x0003
#define TCG_FEATURE_SINGLE_USER_MODE    (UINT16)0x0201
#define TCG_FEATURE_DATASTORE_TABLE     (UINT16)0x0202
#define TCG_FEATURE_OPAL_SSC_V1_0_0     (UINT16)0x0200
#define TCG_FEATURE_OPAL_SSC_V2_0_0     (UINT16)0x0203
#define TCG_FEATURE_OPAL_SSC_LITE       (UINT16)0x0301
#define TCG_FEATURE_PYRITE_SSC          (UINT16)0x0302
#define TCG_FEATURE_PYRITE_SSC_V2_0_0   (UINT16)0x0303
#define TCG_FEATURE_BLOCK_SID           (UINT16)0x0402
#define TCG_FEATURE_DATA_REMOVAL        (UINT16)0x0404

// ACE Expression values
#define TCG_ACE_EXPRESSION_AND 0x0
#define TCG_ACE_EXPRESSION_OR  0x1

/****************************************************************************
TRUSTED RECEIVE - supported security protocols list (SP_Specific = 0000h)
ATA 8 Rev6a Table 68 7.57.6.2
****************************************************************************/
// Security Protocol IDs
#define TCG_SECURITY_PROTOCOL_INFO                   0x00
#define TCG_OPAL_SECURITY_PROTOCOL_1                 0x01
#define TCG_OPAL_SECURITY_PROTOCOL_2                 0x02
#define TCG_SECURITY_PROTOCOL_TCG3                   0x03
#define TCG_SECURITY_PROTOCOL_TCG4                   0x04
#define TCG_SECURITY_PROTOCOL_TCG5                   0x05
#define TCG_SECURITY_PROTOCOL_TCG6                   0x06
#define TCG_SECURITY_PROTOCOL_CBCS                   0x07
#define TCG_SECURITY_PROTOCOL_TAPE_DATA              0x20
#define TCG_SECURITY_PROTOCOL_DATA_ENCRYPT_CONFIG    0x21
#define TCG_SECURITY_PROTOCOL_SA_CREATION_CAPS       0x40
#define TCG_SECURITY_PROTOCOL_IKEV2_SCSI             0x41
#define TCG_SECURITY_PROTOCOL_JEDEC_UFS              0xEC
#define TCG_SECURITY_PROTOCOL_SDCARD_SECURITY        0xED
#define TCG_SECURITY_PROTOCOL_IEEE_1667              0xEE
#define TCG_SECURITY_PROTOCOL_ATA_DEVICE_SERVER_PASS 0xEF

// Security Protocol Specific IDs
#define TCG_SP_SPECIFIC_PROTOCOL_LIST               0x0000
#define TCG_SP_SPECIFIC_PROTOCOL_LEVEL0_DISCOVERY   0x0001

#define TCG_RESERVED_COMID 0x0000

// Defined in TCG Storage Feature Set:Block SID Authentication spec,
// ComId used for BlockSid command is hardcode 0x0005.
#define TCG_BLOCKSID_COMID 0x0005

#pragma pack(1)
typedef struct {
  UINT8   Reserved[6];
  UINT16  ListLength_BE;  // 6 - 7
  UINT8   List[504];      // 8...
} TCG_SUPPORTED_SECURITY_PROTOCOLS;


// Level 0 Discovery
typedef struct {
  UINT32 LengthBE;    // number of valid bytes in discovery response, not including length field
  UINT16 VerMajorBE;
  UINT16 VerMinorBE;
  UINT8  Reserved[8];
  UINT8  VendorUnique[32];
} TCG_LEVEL0_DISCOVERY_HEADER;

typedef struct _TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER {
  UINT16 FeatureCode_BE;
  UINT8  Reserved : 4;
  UINT8  Version : 4;
  UINT8  Length;     // length of feature dependent data in bytes
} TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER;


typedef struct {
  TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
  UINT8                                LockingSupported : 1;
  UINT8                                LockingEnabled : 1;   // means the locking security provider (SP) is enabled
  UINT8                                Locked : 1;   // means at least 1 locking range is enabled
  UINT8                                MediaEncryption : 1;
  UINT8                                MbrEnabled : 1;
  UINT8                                MbrDone : 1;
  UINT8                                Reserved : 2;
  UINT8                                Reserved515[11];
} TCG_LOCKING_FEATURE_DESCRIPTOR;

typedef struct {
  TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
  UINT8                                SIDValueState : 1;
  UINT8                                SIDBlockedState : 1;
  UINT8                                Reserved4 : 6;
  UINT8                                HardwareReset : 1;
  UINT8                                Reserved5 : 7;
  UINT8                                Reserved615[10];
} TCG_BLOCK_SID_FEATURE_DESCRIPTOR;


typedef struct {
  TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
  UINT8                                SyncSupported : 1;
  UINT8                                AsyncSupported : 1;
  UINT8                                AckNakSupported : 1;
  UINT8                                BufferMgmtSupported : 1;
  UINT8                                StreamingSupported : 1;
  UINT8                                Reserved4b5 : 1;
  UINT8                                ComIdMgmtSupported : 1;
  UINT8                                Reserved4b7 : 1;
  UINT8                                Reserved515[11];
} TCG_TPER_FEATURE_DESCRIPTOR;

#pragma pack()

// Special Purpose UIDs
#define TCG_UID_NULL                            TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
#define TCG_UID_THIS_SP                         TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01)
#define TCG_UID_SMUID                           TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF)

// Session Manager Method UIDS
#define TCG_UID_SM_PROPERTIES                   TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01)
#define TCG_UID_SM_START_SESSION                TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02)
#define TCG_UID_SM_SYNC_SESSION                 TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03)
#define TCG_UID_SM_START_TRUSTED_SESSION        TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x04)
#define TCG_UID_SM_SYNC_TRUSTED_SESSION         TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x05)
#define TCG_UID_SM_CLOSE_SESSION                TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)

// MethodID UIDs
#define TCG_UID_METHOD_DELETE_SP                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01)
#define TCG_UID_METHOD_CREATE_TABLE             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02)
#define TCG_UID_METHOD_DELETE                   TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03)
#define TCG_UID_METHOD_CREATE_ROW               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04)
#define TCG_UID_METHOD_DELETE_ROW               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05)
#define TCG_UID_METHOD_NEXT                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08)
#define TCG_UID_METHOD_GET_FREE_SPACE           TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09)
#define TCG_UID_METHOD_GET_FREE_ROWS            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A)
#define TCG_UID_METHOD_DELETE_METHOD            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0B)
#define TCG_UID_METHOD_GET_ACL                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D)
#define TCG_UID_METHOD_ADD_ACE                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E)
#define TCG_UID_METHOD_REMOVE_ACE               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F)
#define TCG_UID_METHOD_GEN_KEY                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10)
#define TCG_UID_METHOD_GET_PACKAGE              TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12)
#define TCG_UID_METHOD_SET_PACKAGE              TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13)
#define TCG_UID_METHOD_GET                      TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16)
#define TCG_UID_METHOD_SET                      TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17)
#define TCG_UID_METHOD_AUTHENTICATE             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1C)
#define TCG_UID_METHOD_ISSUE_SP                 TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x01)
#define TCG_UID_METHOD_GET_CLOCK                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x01)
#define TCG_UID_METHOD_RESET_CLOCK              TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x02)
#define TCG_UID_METHOD_SET_CLOCK_HIGH           TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x03)
#define TCG_UID_METHOD_SET_LAG_HIGH             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x04)
#define TCG_UID_METHOD_SET_CLOCK_LOW            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x05)
#define TCG_UID_METHOD_SET_LAG_LOW              TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)
#define TCG_UID_METHOD_INCREMENT_COUNTER        TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x07)
#define TCG_UID_METHOD_RANDOM                   TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x01)
#define TCG_UID_METHOD_SALT                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x02)
#define TCG_UID_METHOD_DECRYPT_INIT             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x03)
#define TCG_UID_METHOD_DECRYPT                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x04)
#define TCG_UID_METHOD_DECRYPT_FINALIZE         TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x05)
#define TCG_UID_METHOD_ENCRYPT_INIT             TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x06)
#define TCG_UID_METHOD_ENCRYPT                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x07)
#define TCG_UID_METHOD_ENCRYPT_FINALIZE         TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x08)
#define TCG_UID_METHOD_HMAC_INIT                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x09)
#define TCG_UID_METHOD_HMAC                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0A)
#define TCG_UID_METHOD_HMAC_FINALIZE            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0B)
#define TCG_UID_METHOD_HASH_INIT                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0C)
#define TCG_UID_METHOD_HASH                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0D)
#define TCG_UID_METHOD_HASH_FINALIZE            TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0E)
#define TCG_UID_METHOD_SIGN                     TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0F)
#define TCG_UID_METHOD_VERIFY                   TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x10)
#define TCG_UID_METHOD_XOR                      TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x11)
#define TCG_UID_METHOD_ADD_LOG                  TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x01)
#define TCG_UID_METHOD_CREATE_LOG               TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x02)
#define TCG_UID_METHOD_CLEAR_LOG                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x03)
#define TCG_UID_METHOD_FLUSH_LOG                TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x04)

#endif // TCG_H_