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