/// UID in host native byte order\r
typedef UINT64 TCG_UID;\r
\r
-#define TCG_TO_UID(b0, b1, b2, b3, b4, b5, b6, b7) (TCG_UID)( \\r
+#define TCG_TO_UID(b0, b1, b2, b3, b4, b5, b6, b7) (TCG_UID)(\\r
(UINT64)(b0) | \\r
((UINT64)(b1) << 8) | \\r
((UINT64)(b2) << 16) | \\r
((UINT64)(b7) << 56))\r
\r
typedef struct {\r
- UINT32 ReservedBE;\r
- UINT16 ComIDBE;\r
- UINT16 ComIDExtensionBE;\r
- UINT32 OutstandingDataBE;\r
- UINT32 MinTransferBE;\r
- UINT32 LengthBE;\r
- UINT8 Payload[0];\r
+ UINT32 ReservedBE;\r
+ UINT16 ComIDBE;\r
+ UINT16 ComIDExtensionBE;\r
+ UINT32 OutstandingDataBE;\r
+ UINT32 MinTransferBE;\r
+ UINT32 LengthBE;\r
+ UINT8 Payload[0];\r
} TCG_COM_PACKET;\r
\r
typedef struct {\r
- UINT32 TperSessionNumberBE;\r
- UINT32 HostSessionNumberBE;\r
- UINT32 SequenceNumberBE;\r
- UINT16 ReservedBE;\r
- UINT16 AckTypeBE;\r
- UINT32 AcknowledgementBE;\r
- UINT32 LengthBE;\r
- UINT8 Payload[0];\r
+ UINT32 TperSessionNumberBE;\r
+ UINT32 HostSessionNumberBE;\r
+ UINT32 SequenceNumberBE;\r
+ UINT16 ReservedBE;\r
+ UINT16 AckTypeBE;\r
+ UINT32 AcknowledgementBE;\r
+ UINT32 LengthBE;\r
+ UINT8 Payload[0];\r
} TCG_PACKET;\r
\r
-#define TCG_SUBPACKET_ALIGNMENT 4 // 4-byte alignment per spec\r
+#define TCG_SUBPACKET_ALIGNMENT 4// 4-byte alignment per spec\r
\r
typedef struct {\r
- UINT8 ReservedBE[6];\r
- UINT16 KindBE;\r
- UINT32 LengthBE;\r
- UINT8 Payload[0];\r
+ UINT8 ReservedBE[6];\r
+ UINT16 KindBE;\r
+ UINT32 LengthBE;\r
+ UINT8 Payload[0];\r
} TCG_SUB_PACKET;\r
\r
-#define SUBPACKET_KIND_DATA 0x0000\r
-#define SUBPACKET_KIND_CREDIT_CONTROL 0x8001\r
+#define SUBPACKET_KIND_DATA 0x0000\r
+#define SUBPACKET_KIND_CREDIT_CONTROL 0x8001\r
\r
-#define TCG_ATOM_TYPE_INTEGER 0x0\r
-#define TCG_ATOM_TYPE_BYTE 0x1\r
+#define TCG_ATOM_TYPE_INTEGER 0x0\r
+#define TCG_ATOM_TYPE_BYTE 0x1\r
typedef struct {\r
- UINT8 Data : 6;\r
- UINT8 Sign : 1;\r
- UINT8 IsZero : 1;\r
+ UINT8 Data : 6;\r
+ UINT8 Sign : 1;\r
+ UINT8 IsZero : 1;\r
} TCG_TINY_ATOM_BITS;\r
\r
typedef union {\r
- UINT8 Raw;\r
- TCG_TINY_ATOM_BITS TinyAtomBits;\r
+ UINT8 Raw;\r
+ TCG_TINY_ATOM_BITS TinyAtomBits;\r
} TCG_SIMPLE_TOKEN_TINY_ATOM;\r
\r
-\r
typedef struct {\r
- UINT8 Length : 4;\r
- UINT8 SignOrCont : 1;\r
- UINT8 ByteOrInt : 1;\r
- UINT8 IsZero : 1;\r
- UINT8 IsOne : 1;\r
+ UINT8 Length : 4;\r
+ UINT8 SignOrCont : 1;\r
+ UINT8 ByteOrInt : 1;\r
+ UINT8 IsZero : 1;\r
+ UINT8 IsOne : 1;\r
} TCG_SHORT_ATOM_BITS;\r
\r
typedef union {\r
- UINT8 RawHeader;\r
- TCG_SHORT_ATOM_BITS ShortAtomBits;\r
+ UINT8 RawHeader;\r
+ TCG_SHORT_ATOM_BITS ShortAtomBits;\r
} TCG_SIMPLE_TOKEN_SHORT_ATOM;\r
\r
-\r
-#define TCG_MEDIUM_ATOM_LENGTH_HIGH_SHIFT 0x8\r
-#define TCG_MEDIUM_ATOM_LENGTH_HIGH_MASK 0x7\r
+#define TCG_MEDIUM_ATOM_LENGTH_HIGH_SHIFT 0x8\r
+#define TCG_MEDIUM_ATOM_LENGTH_HIGH_MASK 0x7\r
\r
typedef struct {\r
- UINT8 LengthHigh : 3;\r
- UINT8 SignOrCont : 1;\r
- UINT8 ByteOrInt : 1;\r
- UINT8 IsZero : 1;\r
- UINT8 IsOne1 : 1;\r
- UINT8 IsOne2 : 1;\r
- UINT8 LengthLow;\r
+ UINT8 LengthHigh : 3;\r
+ UINT8 SignOrCont : 1;\r
+ UINT8 ByteOrInt : 1;\r
+ UINT8 IsZero : 1;\r
+ UINT8 IsOne1 : 1;\r
+ UINT8 IsOne2 : 1;\r
+ UINT8 LengthLow;\r
} TCG_MEDIUM_ATOM_BITS;\r
\r
typedef union {\r
- UINT16 RawHeader;\r
- TCG_MEDIUM_ATOM_BITS MediumAtomBits;\r
+ UINT16 RawHeader;\r
+ TCG_MEDIUM_ATOM_BITS MediumAtomBits;\r
} TCG_SIMPLE_TOKEN_MEDIUM_ATOM;\r
\r
-\r
-#define TCG_LONG_ATOM_LENGTH_HIGH_SHIFT 16\r
-#define TCG_LONG_ATOM_LENGTH_MID_SHIFT 8\r
+#define TCG_LONG_ATOM_LENGTH_HIGH_SHIFT 16\r
+#define TCG_LONG_ATOM_LENGTH_MID_SHIFT 8\r
\r
typedef struct {\r
- UINT8 SignOrCont : 1;\r
- UINT8 ByteOrInt : 1;\r
- UINT8 Reserved : 2;\r
- UINT8 IsZero : 1;\r
- UINT8 IsOne1 : 1;\r
- UINT8 IsOne2 : 1;\r
- UINT8 IsOne3 : 1;\r
- UINT8 LengthHigh;\r
- UINT8 LengthMid;\r
- UINT8 LengthLow;\r
+ UINT8 SignOrCont : 1;\r
+ UINT8 ByteOrInt : 1;\r
+ UINT8 Reserved : 2;\r
+ UINT8 IsZero : 1;\r
+ UINT8 IsOne1 : 1;\r
+ UINT8 IsOne2 : 1;\r
+ UINT8 IsOne3 : 1;\r
+ UINT8 LengthHigh;\r
+ UINT8 LengthMid;\r
+ UINT8 LengthLow;\r
} TCG_LONG_ATOM_BITS;\r
\r
typedef union {\r
- UINT32 RawHeader;\r
- TCG_LONG_ATOM_BITS LongAtomBits;\r
+ UINT32 RawHeader;\r
+ TCG_LONG_ATOM_BITS LongAtomBits;\r
} TCG_SIMPLE_TOKEN_LONG_ATOM;\r
\r
-\r
// TCG Core Spec v2 - Table 04 - Token Types\r
typedef enum {\r
TcgTokenTypeReserved,\r
#define TCG_TOKEN_MEDIUMATOM_MAX_BYTE_SIZE 0x7FF\r
#define TCG_TOKEN_LONGATOM_MAX_BYTE_SIZE 0xFFFFFF\r
\r
-#define TCG_TOKEN_TINYATOM_UNSIGNED_MAX_VALUE 0x3F\r
-#define TCG_TOKEN_TINYATOM_SIGNED_MAX_VALUE 0x1F\r
-#define TCG_TOKEN_TINYATOM_SIGNED_MIN_VALUE -32\r
+#define TCG_TOKEN_TINYATOM_UNSIGNED_MAX_VALUE 0x3F\r
+#define TCG_TOKEN_TINYATOM_SIGNED_MAX_VALUE 0x1F\r
+#define TCG_TOKEN_TINYATOM_SIGNED_MIN_VALUE -32\r
\r
// TOKEN TYPES\r
#define TCG_TOKEN_TINYATOM 0x00\r
#define TCG_TOKEN_STARTTRANSACTION 0xFB\r
#define TCG_TOKEN_ENDTRANSACTION 0xFC\r
// 0xFD - 0xFE TCG Reserved\r
-#define TCG_TOKEN_EMPTY 0xFF\r
+#define TCG_TOKEN_EMPTY 0xFF\r
\r
// CELLBLOCK reserved Names\r
-#define TCG_CELL_BLOCK_TABLE_NAME (UINT8)0x00\r
-#define TCG_CELL_BLOCK_START_ROW_NAME (UINT8)0x01\r
-#define TCG_CELL_BLOCK_END_ROW_NAME (UINT8)0x02\r
-#define TCG_CELL_BLOCK_START_COLUMN_NAME (UINT8)0x03\r
-#define TCG_CELL_BLOCK_END_COLUMN_NAME (UINT8)0x04\r
+#define TCG_CELL_BLOCK_TABLE_NAME (UINT8)0x00\r
+#define TCG_CELL_BLOCK_START_ROW_NAME (UINT8)0x01\r
+#define TCG_CELL_BLOCK_END_ROW_NAME (UINT8)0x02\r
+#define TCG_CELL_BLOCK_START_COLUMN_NAME (UINT8)0x03\r
+#define TCG_CELL_BLOCK_END_COLUMN_NAME (UINT8)0x04\r
\r
// METHOD STATUS CODES\r
-#define TCG_METHOD_STATUS_CODE_SUCCESS 0x00\r
-#define TCG_METHOD_STATUS_CODE_NOT_AUTHORIZED 0x01\r
-#define TCG_METHOD_STATUS_CODE_OBSOLETE 0x02\r
-#define TCG_METHOD_STATUS_CODE_SP_BUSY 0x03\r
-#define TCG_METHOD_STATUS_CODE_SP_FAILED 0x04\r
-#define TCG_METHOD_STATUS_CODE_SP_DISABLED 0x05\r
-#define TCG_METHOD_STATUS_CODE_SP_FROZEN 0x06\r
-#define TCG_METHOD_STATUS_CODE_NO_SESSIONS_AVAILABLE 0x07\r
-#define TCG_METHOD_STATUS_CODE_UNIQUENESS_CONFLICT 0x08\r
-#define TCG_METHOD_STATUS_CODE_INSUFFICIENT_SPACE 0x09\r
-#define TCG_METHOD_STATUS_CODE_INSUFFICIENT_ROWS 0x0A\r
-#define TCG_METHOD_STATUS_CODE_INVALID_PARAMETER 0x0C\r
-#define TCG_METHOD_STATUS_CODE_OBSOLETE2 0x0D\r
-#define TCG_METHOD_STATUS_CODE_OBSOLETE3 0x0E\r
-#define TCG_METHOD_STATUS_CODE_TPER_MALFUNCTION 0x0F\r
-#define TCG_METHOD_STATUS_CODE_TRANSACTION_FAILURE 0x10\r
-#define TCG_METHOD_STATUS_CODE_RESPONSE_OVERFLOW 0x11\r
-#define TCG_METHOD_STATUS_CODE_AUTHORITY_LOCKED_OUT 0x12\r
-#define TCG_METHOD_STATUS_CODE_FAIL 0x3F\r
-\r
+#define TCG_METHOD_STATUS_CODE_SUCCESS 0x00\r
+#define TCG_METHOD_STATUS_CODE_NOT_AUTHORIZED 0x01\r
+#define TCG_METHOD_STATUS_CODE_OBSOLETE 0x02\r
+#define TCG_METHOD_STATUS_CODE_SP_BUSY 0x03\r
+#define TCG_METHOD_STATUS_CODE_SP_FAILED 0x04\r
+#define TCG_METHOD_STATUS_CODE_SP_DISABLED 0x05\r
+#define TCG_METHOD_STATUS_CODE_SP_FROZEN 0x06\r
+#define TCG_METHOD_STATUS_CODE_NO_SESSIONS_AVAILABLE 0x07\r
+#define TCG_METHOD_STATUS_CODE_UNIQUENESS_CONFLICT 0x08\r
+#define TCG_METHOD_STATUS_CODE_INSUFFICIENT_SPACE 0x09\r
+#define TCG_METHOD_STATUS_CODE_INSUFFICIENT_ROWS 0x0A\r
+#define TCG_METHOD_STATUS_CODE_INVALID_PARAMETER 0x0C\r
+#define TCG_METHOD_STATUS_CODE_OBSOLETE2 0x0D\r
+#define TCG_METHOD_STATUS_CODE_OBSOLETE3 0x0E\r
+#define TCG_METHOD_STATUS_CODE_TPER_MALFUNCTION 0x0F\r
+#define TCG_METHOD_STATUS_CODE_TRANSACTION_FAILURE 0x10\r
+#define TCG_METHOD_STATUS_CODE_RESPONSE_OVERFLOW 0x11\r
+#define TCG_METHOD_STATUS_CODE_AUTHORITY_LOCKED_OUT 0x12\r
+#define TCG_METHOD_STATUS_CODE_FAIL 0x3F\r
\r
// Feature Codes\r
#define TCG_FEATURE_INVALID (UINT16)0x0000\r
#define TCG_FEATURE_DATA_REMOVAL (UINT16)0x0404\r
\r
// ACE Expression values\r
-#define TCG_ACE_EXPRESSION_AND 0x0\r
-#define TCG_ACE_EXPRESSION_OR 0x1\r
+#define TCG_ACE_EXPRESSION_AND 0x0\r
+#define TCG_ACE_EXPRESSION_OR 0x1\r
\r
/****************************************************************************\r
TRUSTED RECEIVE - supported security protocols list (SP_Specific = 0000h)\r
ATA 8 Rev6a Table 68 7.57.6.2\r
****************************************************************************/\r
// Security Protocol IDs\r
-#define TCG_SECURITY_PROTOCOL_INFO 0x00\r
-#define TCG_OPAL_SECURITY_PROTOCOL_1 0x01\r
-#define TCG_OPAL_SECURITY_PROTOCOL_2 0x02\r
-#define TCG_SECURITY_PROTOCOL_TCG3 0x03\r
-#define TCG_SECURITY_PROTOCOL_TCG4 0x04\r
-#define TCG_SECURITY_PROTOCOL_TCG5 0x05\r
-#define TCG_SECURITY_PROTOCOL_TCG6 0x06\r
-#define TCG_SECURITY_PROTOCOL_CBCS 0x07\r
-#define TCG_SECURITY_PROTOCOL_TAPE_DATA 0x20\r
-#define TCG_SECURITY_PROTOCOL_DATA_ENCRYPT_CONFIG 0x21\r
-#define TCG_SECURITY_PROTOCOL_SA_CREATION_CAPS 0x40\r
-#define TCG_SECURITY_PROTOCOL_IKEV2_SCSI 0x41\r
-#define TCG_SECURITY_PROTOCOL_JEDEC_UFS 0xEC\r
-#define TCG_SECURITY_PROTOCOL_SDCARD_SECURITY 0xED\r
-#define TCG_SECURITY_PROTOCOL_IEEE_1667 0xEE\r
-#define TCG_SECURITY_PROTOCOL_ATA_DEVICE_SERVER_PASS 0xEF\r
+#define TCG_SECURITY_PROTOCOL_INFO 0x00\r
+#define TCG_OPAL_SECURITY_PROTOCOL_1 0x01\r
+#define TCG_OPAL_SECURITY_PROTOCOL_2 0x02\r
+#define TCG_SECURITY_PROTOCOL_TCG3 0x03\r
+#define TCG_SECURITY_PROTOCOL_TCG4 0x04\r
+#define TCG_SECURITY_PROTOCOL_TCG5 0x05\r
+#define TCG_SECURITY_PROTOCOL_TCG6 0x06\r
+#define TCG_SECURITY_PROTOCOL_CBCS 0x07\r
+#define TCG_SECURITY_PROTOCOL_TAPE_DATA 0x20\r
+#define TCG_SECURITY_PROTOCOL_DATA_ENCRYPT_CONFIG 0x21\r
+#define TCG_SECURITY_PROTOCOL_SA_CREATION_CAPS 0x40\r
+#define TCG_SECURITY_PROTOCOL_IKEV2_SCSI 0x41\r
+#define TCG_SECURITY_PROTOCOL_JEDEC_UFS 0xEC\r
+#define TCG_SECURITY_PROTOCOL_SDCARD_SECURITY 0xED\r
+#define TCG_SECURITY_PROTOCOL_IEEE_1667 0xEE\r
+#define TCG_SECURITY_PROTOCOL_ATA_DEVICE_SERVER_PASS 0xEF\r
\r
// Security Protocol Specific IDs\r
-#define TCG_SP_SPECIFIC_PROTOCOL_LIST 0x0000\r
-#define TCG_SP_SPECIFIC_PROTOCOL_LEVEL0_DISCOVERY 0x0001\r
+#define TCG_SP_SPECIFIC_PROTOCOL_LIST 0x0000\r
+#define TCG_SP_SPECIFIC_PROTOCOL_LEVEL0_DISCOVERY 0x0001\r
\r
-#define TCG_RESERVED_COMID 0x0000\r
+#define TCG_RESERVED_COMID 0x0000\r
\r
// Defined in TCG Storage Feature Set:Block SID Authentication spec,\r
// ComId used for BlockSid command is hardcode 0x0005.\r
-#define TCG_BLOCKSID_COMID 0x0005\r
+#define TCG_BLOCKSID_COMID 0x0005\r
\r
#pragma pack(1)\r
typedef struct {\r
- UINT8 Reserved[6];\r
- UINT16 ListLength_BE; // 6 - 7\r
- UINT8 List[504]; // 8...\r
+ UINT8 Reserved[6];\r
+ UINT16 ListLength_BE; // 6 - 7\r
+ UINT8 List[504]; // 8...\r
} TCG_SUPPORTED_SECURITY_PROTOCOLS;\r
\r
-\r
// Level 0 Discovery\r
typedef struct {\r
- UINT32 LengthBE; // number of valid bytes in discovery response, not including length field\r
- UINT16 VerMajorBE;\r
- UINT16 VerMinorBE;\r
- UINT8 Reserved[8];\r
- UINT8 VendorUnique[32];\r
+ UINT32 LengthBE; // number of valid bytes in discovery response, not including length field\r
+ UINT16 VerMajorBE;\r
+ UINT16 VerMinorBE;\r
+ UINT8 Reserved[8];\r
+ UINT8 VendorUnique[32];\r
} TCG_LEVEL0_DISCOVERY_HEADER;\r
\r
typedef struct _TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER {\r
- UINT16 FeatureCode_BE;\r
- UINT8 Reserved : 4;\r
- UINT8 Version : 4;\r
- UINT8 Length; // length of feature dependent data in bytes\r
+ UINT16 FeatureCode_BE;\r
+ UINT8 Reserved : 4;\r
+ UINT8 Version : 4;\r
+ UINT8 Length; // length of feature dependent data in bytes\r
} TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER;\r
\r
-\r
typedef struct {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT8 LockingSupported : 1;\r
- UINT8 LockingEnabled : 1; // means the locking security provider (SP) is enabled\r
- UINT8 Locked : 1; // means at least 1 locking range is enabled\r
- UINT8 MediaEncryption : 1;\r
- UINT8 MbrEnabled : 1;\r
- UINT8 MbrDone : 1;\r
- UINT8 Reserved : 2;\r
- UINT8 Reserved515[11];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT8 LockingSupported : 1;\r
+ UINT8 LockingEnabled : 1; // means the locking security provider (SP) is enabled\r
+ UINT8 Locked : 1; // means at least 1 locking range is enabled\r
+ UINT8 MediaEncryption : 1;\r
+ UINT8 MbrEnabled : 1;\r
+ UINT8 MbrDone : 1;\r
+ UINT8 Reserved : 2;\r
+ UINT8 Reserved515[11];\r
} TCG_LOCKING_FEATURE_DESCRIPTOR;\r
\r
typedef struct {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT8 SIDValueState : 1;\r
- UINT8 SIDBlockedState : 1;\r
- UINT8 Reserved4 : 6;\r
- UINT8 HardwareReset : 1;\r
- UINT8 Reserved5 : 7;\r
- UINT8 Reserved615[10];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT8 SIDValueState : 1;\r
+ UINT8 SIDBlockedState : 1;\r
+ UINT8 Reserved4 : 6;\r
+ UINT8 HardwareReset : 1;\r
+ UINT8 Reserved5 : 7;\r
+ UINT8 Reserved615[10];\r
} TCG_BLOCK_SID_FEATURE_DESCRIPTOR;\r
\r
-\r
typedef struct {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT8 SyncSupported : 1;\r
- UINT8 AsyncSupported : 1;\r
- UINT8 AckNakSupported : 1;\r
- UINT8 BufferMgmtSupported : 1;\r
- UINT8 StreamingSupported : 1;\r
- UINT8 Reserved4b5 : 1;\r
- UINT8 ComIdMgmtSupported : 1;\r
- UINT8 Reserved4b7 : 1;\r
- UINT8 Reserved515[11];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT8 SyncSupported : 1;\r
+ UINT8 AsyncSupported : 1;\r
+ UINT8 AckNakSupported : 1;\r
+ UINT8 BufferMgmtSupported : 1;\r
+ UINT8 StreamingSupported : 1;\r
+ UINT8 Reserved4b5 : 1;\r
+ UINT8 ComIdMgmtSupported : 1;\r
+ UINT8 Reserved4b7 : 1;\r
+ UINT8 Reserved515[11];\r
} TCG_TPER_FEATURE_DESCRIPTOR;\r
\r
#pragma pack()\r
\r
// Special Purpose UIDs\r
-#define TCG_UID_NULL TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)\r
-#define TCG_UID_THIS_SP TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01)\r
-#define TCG_UID_SMUID TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF)\r
+#define TCG_UID_NULL TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)\r
+#define TCG_UID_THIS_SP TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01)\r
+#define TCG_UID_SMUID TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF)\r
\r
// Session Manager Method UIDS\r
-#define TCG_UID_SM_PROPERTIES TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01)\r
-#define TCG_UID_SM_START_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02)\r
-#define TCG_UID_SM_SYNC_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03)\r
-#define TCG_UID_SM_START_TRUSTED_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x04)\r
-#define TCG_UID_SM_SYNC_TRUSTED_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x05)\r
-#define TCG_UID_SM_CLOSE_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)\r
+#define TCG_UID_SM_PROPERTIES TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01)\r
+#define TCG_UID_SM_START_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02)\r
+#define TCG_UID_SM_SYNC_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03)\r
+#define TCG_UID_SM_START_TRUSTED_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x04)\r
+#define TCG_UID_SM_SYNC_TRUSTED_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x05)\r
+#define TCG_UID_SM_CLOSE_SESSION TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)\r
\r
// MethodID UIDs\r
-#define TCG_UID_METHOD_DELETE_SP TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01)\r
-#define TCG_UID_METHOD_CREATE_TABLE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02)\r
-#define TCG_UID_METHOD_DELETE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03)\r
-#define TCG_UID_METHOD_CREATE_ROW TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04)\r
-#define TCG_UID_METHOD_DELETE_ROW TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05)\r
-#define TCG_UID_METHOD_NEXT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08)\r
-#define TCG_UID_METHOD_GET_FREE_SPACE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09)\r
-#define TCG_UID_METHOD_GET_FREE_ROWS TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A)\r
-#define TCG_UID_METHOD_DELETE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0B)\r
-#define TCG_UID_METHOD_GET_ACL TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D)\r
-#define TCG_UID_METHOD_ADD_ACE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E)\r
-#define TCG_UID_METHOD_REMOVE_ACE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F)\r
-#define TCG_UID_METHOD_GEN_KEY TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10)\r
-#define TCG_UID_METHOD_GET_PACKAGE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12)\r
-#define TCG_UID_METHOD_SET_PACKAGE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13)\r
-#define TCG_UID_METHOD_GET TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16)\r
-#define TCG_UID_METHOD_SET TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17)\r
-#define TCG_UID_METHOD_AUTHENTICATE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1C)\r
-#define TCG_UID_METHOD_ISSUE_SP TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x01)\r
-#define TCG_UID_METHOD_GET_CLOCK TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x01)\r
-#define TCG_UID_METHOD_RESET_CLOCK TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x02)\r
-#define TCG_UID_METHOD_SET_CLOCK_HIGH TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x03)\r
-#define TCG_UID_METHOD_SET_LAG_HIGH TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x04)\r
-#define TCG_UID_METHOD_SET_CLOCK_LOW TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x05)\r
-#define TCG_UID_METHOD_SET_LAG_LOW TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)\r
-#define TCG_UID_METHOD_INCREMENT_COUNTER TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x07)\r
-#define TCG_UID_METHOD_RANDOM TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x01)\r
-#define TCG_UID_METHOD_SALT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x02)\r
-#define TCG_UID_METHOD_DECRYPT_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x03)\r
-#define TCG_UID_METHOD_DECRYPT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x04)\r
-#define TCG_UID_METHOD_DECRYPT_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x05)\r
-#define TCG_UID_METHOD_ENCRYPT_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x06)\r
-#define TCG_UID_METHOD_ENCRYPT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x07)\r
-#define TCG_UID_METHOD_ENCRYPT_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x08)\r
-#define TCG_UID_METHOD_HMAC_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x09)\r
-#define TCG_UID_METHOD_HMAC TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0A)\r
-#define TCG_UID_METHOD_HMAC_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0B)\r
-#define TCG_UID_METHOD_HASH_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0C)\r
-#define TCG_UID_METHOD_HASH TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0D)\r
-#define TCG_UID_METHOD_HASH_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0E)\r
-#define TCG_UID_METHOD_SIGN TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0F)\r
-#define TCG_UID_METHOD_VERIFY TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x10)\r
-#define TCG_UID_METHOD_XOR TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x11)\r
-#define TCG_UID_METHOD_ADD_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x01)\r
-#define TCG_UID_METHOD_CREATE_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x02)\r
-#define TCG_UID_METHOD_CLEAR_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x03)\r
-#define TCG_UID_METHOD_FLUSH_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x04)\r
+#define TCG_UID_METHOD_DELETE_SP TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01)\r
+#define TCG_UID_METHOD_CREATE_TABLE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02)\r
+#define TCG_UID_METHOD_DELETE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03)\r
+#define TCG_UID_METHOD_CREATE_ROW TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04)\r
+#define TCG_UID_METHOD_DELETE_ROW TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05)\r
+#define TCG_UID_METHOD_NEXT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08)\r
+#define TCG_UID_METHOD_GET_FREE_SPACE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09)\r
+#define TCG_UID_METHOD_GET_FREE_ROWS TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A)\r
+#define TCG_UID_METHOD_DELETE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0B)\r
+#define TCG_UID_METHOD_GET_ACL TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D)\r
+#define TCG_UID_METHOD_ADD_ACE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0E)\r
+#define TCG_UID_METHOD_REMOVE_ACE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F)\r
+#define TCG_UID_METHOD_GEN_KEY TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10)\r
+#define TCG_UID_METHOD_GET_PACKAGE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12)\r
+#define TCG_UID_METHOD_SET_PACKAGE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13)\r
+#define TCG_UID_METHOD_GET TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16)\r
+#define TCG_UID_METHOD_SET TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17)\r
+#define TCG_UID_METHOD_AUTHENTICATE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1C)\r
+#define TCG_UID_METHOD_ISSUE_SP TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x01)\r
+#define TCG_UID_METHOD_GET_CLOCK TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x01)\r
+#define TCG_UID_METHOD_RESET_CLOCK TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x02)\r
+#define TCG_UID_METHOD_SET_CLOCK_HIGH TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x03)\r
+#define TCG_UID_METHOD_SET_LAG_HIGH TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x04)\r
+#define TCG_UID_METHOD_SET_CLOCK_LOW TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x05)\r
+#define TCG_UID_METHOD_SET_LAG_LOW TCG_TO_UID(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06)\r
+#define TCG_UID_METHOD_INCREMENT_COUNTER TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x07)\r
+#define TCG_UID_METHOD_RANDOM TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x01)\r
+#define TCG_UID_METHOD_SALT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x02)\r
+#define TCG_UID_METHOD_DECRYPT_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x03)\r
+#define TCG_UID_METHOD_DECRYPT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x04)\r
+#define TCG_UID_METHOD_DECRYPT_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x05)\r
+#define TCG_UID_METHOD_ENCRYPT_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x06)\r
+#define TCG_UID_METHOD_ENCRYPT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x07)\r
+#define TCG_UID_METHOD_ENCRYPT_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x08)\r
+#define TCG_UID_METHOD_HMAC_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x09)\r
+#define TCG_UID_METHOD_HMAC TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0A)\r
+#define TCG_UID_METHOD_HMAC_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0B)\r
+#define TCG_UID_METHOD_HASH_INIT TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0C)\r
+#define TCG_UID_METHOD_HASH TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0D)\r
+#define TCG_UID_METHOD_HASH_FINALIZE TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0E)\r
+#define TCG_UID_METHOD_SIGN TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x0F)\r
+#define TCG_UID_METHOD_VERIFY TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x10)\r
+#define TCG_UID_METHOD_XOR TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x11)\r
+#define TCG_UID_METHOD_ADD_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x01)\r
+#define TCG_UID_METHOD_CREATE_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x02)\r
+#define TCG_UID_METHOD_CLEAR_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x03)\r
+#define TCG_UID_METHOD_FLUSH_LOG TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x04)\r
\r
#endif // TCG_H_\r