Home | History | Annotate | Download | only in IndustryStandard
      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