15679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// This file was extracted from the TCG Published
25679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Trusted Platform Module Library
35679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Part 4: Supporting Routines
45679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Family "2.0"
55679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// Level 00 Revision 01.16
65679752bf24c21135884e987c4077e2f7184897Vadim Bendebury// October 30, 2014
75679752bf24c21135884e987c4077e2f7184897Vadim Bendebury
85679752bf24c21135884e987c4077e2f7184897Vadim Bendeburystatic const TPMA_CC           s_ccAttr [] =      {
95679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x011f, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_UndefineSpaceSpecial
105679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0120, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_EvictControl
115679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0121, 0, 1,        1, 0, 1, 0, 0,      0},    //   TPM_CC_HierarchyControl
125679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0122, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_UndefineSpace
135679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0123, 0, 0,        0, 0, 0, 0, 0,      0},    //   No command
145679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0124, 0, 1,        1, 0, 1, 0, 0,      0},    //   TPM_CC_ChangeEPS
155679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0125, 0, 1,        1, 0, 1, 0, 0,      0},    //   TPM_CC_ChangePPS
165679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0126, 0, 1,        1, 0, 1, 0, 0,      0},    //   TPM_CC_Clear
175679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0127, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_ClearControl
185679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0128, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_ClockSet
195679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0129, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_HierarchyChangeAuth
205679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x012a, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_NV_DefineSpace
215679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x012b, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_PCR_Allocate
225679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x012c, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_PCR_SetAuthPolicy
235679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x012d, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_PP_Commands
245679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x012e, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_SetPrimaryPolicy
255679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x012f, 0, 0,        0, 0, 2, 0, 0,      0},    //   TPM_CC_FieldUpgradeStart
265679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0130, 0, 0,        0, 0, 1, 0, 0,      0},    //   TPM_CC_ClockRateAdjust
275679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0131, 0, 0,        0, 0, 1, 1, 0,      0},    //   TPM_CC_CreatePrimary
285679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0132, 0, 0,        0, 0, 1, 0, 0,      0},    //   TPM_CC_NV_GlobalWriteLock
295679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0133, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_GetCommandAuditDigest
305679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0134, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_Increment
315679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0135, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_SetBits
325679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0136, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_Extend
335679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0137, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_Write
345679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0138, 0, 1,        0, 0, 2, 0, 0,      0},    //   TPM_CC_NV_WriteLock
355679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0139, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_DictionaryAttackLockReset
365679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x013a, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_DictionaryAttackParameters
375679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x013b, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_NV_ChangeAuth
385679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x013c, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_PCR_Event
395679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x013d, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_PCR_Reset
405679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x013e, 0, 0,        0, 1, 1, 0, 0,      0},    //   TPM_CC_SequenceComplete
415679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x013f, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_SetAlgorithmSet
425679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0140, 0, 1,        0, 0, 1, 0, 0,      0},    //   TPM_CC_SetCommandCodeAuditStatus
435679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0141, 0, 1,        0, 0, 0, 0, 0,      0},    //   TPM_CC_FieldUpgradeData
445679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0142, 0, 1,        0, 0, 0, 0, 0,      0},    //   TPM_CC_IncrementalSelfTest
455679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0143, 0, 1,        0, 0, 0, 0, 0,      0},    //   TPM_CC_SelfTest
465679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0144, 0, 1,        0, 0, 0, 0, 0,      0},    //   TPM_CC_Startup
475679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0145, 0, 1,        0, 0, 0, 0, 0,      0},    //   TPM_CC_Shutdown
485679752bf24c21135884e987c4077e2f7184897Vadim Bendebury       {0x0146, 0, 1,        0, 0, 0, 0, 0,      0},    //   TPM_CC_StirRandom
495679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0147,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_ActivateCredential
505679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0148,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_Certify
515679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0149,   0,   0,   0,   0,   3,   0,   0,   0},   //   TPM_CC_PolicyNV
525679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x014a,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_CertifyCreation
535679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x014b,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_Duplicate
545679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x014c,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_GetTime
555679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x014d,   0,   0,   0,   0,   3,   0,   0,   0},   //   TPM_CC_GetSessionAuditDigest
565679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x014e,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_NV_Read
575679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x014f,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_NV_ReadLock
585679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0150,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_ObjectChangeAuth
595679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0151,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_PolicySecret
605679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0152,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_Rewrap
615679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0153,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_Create
625679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0154,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_ECDH_ZGen
635679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0155,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_HMAC
645679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0156,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_Import
655679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0157,   0,   0,   0,   0,   1,   1,   0,   0},   //   TPM_CC_Load
665679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0158,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_Quote
675679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0159,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_RSA_Decrypt
685679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x015a,   0,   0,   0,   0,   0,   0,   0,   0},   //   No command
695679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x015b,   0,   0,   0,   0,   1,   1,   0,   0},   //   TPM_CC_HMAC_Start
705679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x015c,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_SequenceUpdate
715679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x015d,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_Sign
725679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x015e,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_Unseal
735679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x015f,   0,   0,   0,   0,   0,   0,   0,   0},   //   No command
745679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0160,   0,   0,   0,   0,   2,   0,   0,   0},   //   TPM_CC_PolicySigned
755679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0161,   0,   0,   0,   0,   0,   1,   0,   0},   //   TPM_CC_ContextLoad
765679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0162,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_ContextSave
775679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0163,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_ECDH_KeyGen
785679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0164,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_EncryptDecrypt
795679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0165,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_FlushContext
805679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0166,   0,   0,   0,   0,   0,   0,   0,   0},   //   No command
815679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0167,   0,   0,   0,   0,   0,   1,   0,   0},   //   TPM_CC_LoadExternal
825679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0168,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_MakeCredential
835679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0169,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_NV_ReadPublic
845679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x016a,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyAuthorize
855679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x016b,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyAuthValue
865679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x016c,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyCommandCode
875679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x016d,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyCounterTimer
885679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x016e,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyCpHash
895679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x016f,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyLocality
905679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0170,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyNameHash
915679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0171,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyOR
925679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0172,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyTicket
935679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0173,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_ReadPublic
945679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0174,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_RSA_Encrypt
955679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0175,   0,   0,   0,   0,   0,   0,   0,   0},   //   No command
965679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0176,   0,   0,   0,   0,   2,   1,   0,   0},   //   TPM_CC_StartAuthSession
975679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0177,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_VerifySignature
985679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0178,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_ECC_Parameters
995679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0179,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_FirmwareRead
1005679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x017a,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_GetCapability
1015679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x017b,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_GetRandom
1025679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x017c,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_GetTestResult
1035679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x017d,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_Hash
1045679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x017e,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_PCR_Read
1055679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x017f,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyPCR
1065679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0180,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyRestart
1075679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0181,   0,   0,   0,   0,   0,   0,   0,   0},   //   TPM_CC_ReadClock
1085679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0182,   0,   1,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PCR_Extend
1095679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0183,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PCR_SetAuthValue
1105679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0184,   0,   0,   0,   0,   3,   0,   0,   0},   //   TPM_CC_NV_Certify
1115679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0185,   0,   1,   0,   1,   2,   0,   0,   0},   //   TPM_CC_EventSequenceComplete
1125679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0186,   0,   0,   0,   0,   0,   1,   0,   0},   //   TPM_CC_HashSequenceStart
1135679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0187,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyPhysicalPresence
1145679752bf24c21135884e987c4077e2f7184897Vadim Bendebury        {0x0188,   0,   0,   0,   0,   1,   0,   0,   0},   //   TPM_CC_PolicyDuplicationSelect
1155679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x0189,   0,   0,   0,   0,   1,   0,   0,   0},     //   TPM_CC_PolicyGetDigest
1165679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x018a,   0,   0,   0,   0,   0,   0,   0,   0},     //   TPM_CC_TestParms
1175679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x018b,   0,   0,   0,   0,   1,   0,   0,   0},     //   TPM_CC_Commit
1185679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x018c,   0,   0,   0,   0,   1,   0,   0,   0},     //   TPM_CC_PolicyPassword
1195679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x018d,   0,   0,   0,   0,   1,   0,   0,   0},     //   TPM_CC_ZGen_2Phase
1205679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x018e,   0,   0,   0,   0,   0,   0,   0,   0},     //   TPM_CC_EC_Ephemeral
1215679752bf24c21135884e987c4077e2f7184897Vadim Bendebury         {0x018f,   0,   0,   0,   0,   1,   0,   0,   0}      //   TPM_CC_PolicyNvWritten
1225679752bf24c21135884e987c4077e2f7184897Vadim Bendebury};
1235679752bf24c21135884e987c4077e2f7184897Vadim Bendeburytypedef    UINT16                    _ATTR_;
1245679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    NOT_IMPLEMENTED           (_ATTR_)(0)
1255679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    ENCRYPT_2                (_ATTR_)(1 <<          0)
1265679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    ENCRYPT_4                (_ATTR_)(1 <<          1)
1275679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    DECRYPT_2                (_ATTR_)(1 <<          2)
1285679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    DECRYPT_4                (_ATTR_)(1 <<          3)
1295679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    HANDLE_1_USER            (_ATTR_)(1 <<          4)
1305679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    HANDLE_1_ADMIN           (_ATTR_)(1 <<          5)
1315679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    HANDLE_1_DUP             (_ATTR_)(1 <<          6)
1325679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    HANDLE_2_USER            (_ATTR_)(1 <<          7)
1335679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    PP_COMMAND               (_ATTR_)(1 <<          8)
1345679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    IS_IMPLEMENTED           (_ATTR_)(1 <<          9)
1355679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    NO_SESSIONS              (_ATTR_)(1 <<         10)
1365679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    NV_COMMAND               (_ATTR_)(1 <<         11)
1375679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    PP_REQUIRED              (_ATTR_)(1 <<         12)
1385679752bf24c21135884e987c4077e2f7184897Vadim Bendebury#define    R_HANDLE                 (_ATTR_)(1 <<         13)
1395679752bf24c21135884e987c4077e2f7184897Vadim Bendebury//
1405679752bf24c21135884e987c4077e2f7184897Vadim Bendebury//      This is the command code attribute structure.
1415679752bf24c21135884e987c4077e2f7184897Vadim Bendebury//
1425679752bf24c21135884e987c4077e2f7184897Vadim Bendeburytypedef UINT16 COMMAND_ATTRIBUTES;
1435679752bf24c21135884e987c4077e2f7184897Vadim Bendeburystatic const COMMAND_ATTRIBUTES    s_commandAttributes [] = {
1445679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_UndefineSpaceSpecial     *
1455679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_ADMIN+HANDLE_2_USER+PP_COMMAND)),                                    // 0x011f
1465679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_EvictControl                *
1475679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0120
1485679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_HierarchyControl            *
1495679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0121
1505679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_UndefineSpace            *
1515679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0122
1525679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)                                  (NOT_IMPLEMENTED),
1535679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0123 - Not assigned
1545679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ChangeEPS                   *
1555679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0124
1565679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ChangePPS                   *
1575679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0125
1585679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Clear                       *
1595679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0126
1605679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ClearControl                *
1615679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0127
1625679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ClockSet                    *
1635679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0128
1645679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_HierarchyChangeAuth         *
1655679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)),                                         // 0x0129
1665679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_DefineSpace              *
1675679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)),                                         // 0x012a
1685679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_Allocate                *
1695679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x012b
1705679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_SetAuthPolicy           *
1715679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)),                                         // 0x012c
1725679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PP_Commands                 *
1735679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_REQUIRED)),                                                  // 0x012d
1745679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_SetPrimaryPolicy            *
1755679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)),                                         // 0x012e
1765679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_FieldUpgradeStart           *
1775679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+PP_COMMAND)),                                        // 0x012f
1785679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ClockRateAdjust             *
1795679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                                   // 0x0130
1805679752bf24c21135884e987c4077e2f7184897Vadim Bendebury//
1815679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_CreatePrimary               *
1825679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND+ENCRYPT_2+R_HANDLE)), // 0x0131
1835679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_GlobalWriteLock          *
1845679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                // 0x0132
1855679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_GetCommandAuditDigest       *
1865679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)),         // 0x0133
1875679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_Increment                * (IS_IMPLEMENTED+HANDLE_1_USER)),
1885679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0134
1895679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_SetBits                  * (IS_IMPLEMENTED+HANDLE_1_USER)),
1905679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0135
1915679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_Extend                   *
1925679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                 // 0x0136
1935679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_Write                    *
1945679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                 // 0x0137
1955679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_WriteLock                * (IS_IMPLEMENTED+HANDLE_1_USER)),
1965679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0138
1975679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_DictionaryAttackLockReset * (IS_IMPLEMENTED+HANDLE_1_USER)),
1985679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0139
1995679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_DictionaryAttackParameters * (IS_IMPLEMENTED+HANDLE_1_USER)),
2005679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x013a
2015679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_ChangeAuth               *
2025679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN)),                                // 0x013b
2035679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_Event                   *
2045679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                 // 0x013c
2055679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_Reset                   * (IS_IMPLEMENTED+HANDLE_1_USER)),
2065679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x013d
2075679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_SequenceComplete            *
2085679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                       // 0x013e
2095679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_SetAlgorithmSet             * (IS_IMPLEMENTED+HANDLE_1_USER)),
2105679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x013f
2115679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_SetCommandCodeAuditStatus *
2125679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)),                                // 0x0140
2135679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_FieldUpgradeData            * (IS_IMPLEMENTED+DECRYPT_2)),
2145679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0141
2155679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_IncrementalSelfTest         * (IS_IMPLEMENTED)),
2165679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0142
2175679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_SelfTest                    * (IS_IMPLEMENTED)),
2185679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0143
2195679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Startup                     * (IS_IMPLEMENTED+NO_SESSIONS)),
2205679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0144
2215679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Shutdown                    * (IS_IMPLEMENTED)),
2225679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0145
2235679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_StirRandom                  * (IS_IMPLEMENTED+DECRYPT_2)),
2245679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0146
2255679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ActivateCredential          *
2265679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+HANDLE_2_USER+ENCRYPT_2)),        // 0x0147
2275679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Certify                     *
2285679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+HANDLE_2_USER+ENCRYPT_2)),        // 0x0148
2295679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyNV                    *
2305679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                 // 0x0149
2315679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_CertifyCreation             *
2325679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                       // 0x014a
2335679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Duplicate                   *
2345679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_DUP+ENCRYPT_2)),                        // 0x014b
2355679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_GetTime                     *
2365679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)),         // 0x014c
2375679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_GetSessionAuditDigest       *
2385679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)),         // 0x014d
2395679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_Read                     *
2405679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+ENCRYPT_2)),                                 // 0x014e
2415679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_ReadLock                 * (IS_IMPLEMENTED+HANDLE_1_USER)),
2425679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x014f
2435679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ObjectChangeAuth            *
2445679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+ENCRYPT_2)),                      // 0x0150
2455679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicySecret                *
2465679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                       // 0x0151
2475679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Rewrap                     *
2485679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0152
2495679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Create                     *
2505679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0153
2515679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ECDH_ZGen                  *
2525679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0154
2535679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_HMAC                       *
2545679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0155
2555679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Import                     *
2565679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0156
2575679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Load                       *
2585679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2+R_HANDLE)),             // 0x0157
2595679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Quote                      *
2605679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0158
2615679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_RSA_Decrypt                *
2625679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x0159
2635679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)                                 (NOT_IMPLEMENTED),
2645679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x015a - Not assigned
2655679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_HMAC_Start                 *
2665679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+R_HANDLE)),                       // 0x015b
2675679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_SequenceUpdate             *
2685679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                // 0x015c
2695679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Sign                       *
2705679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                // 0x015d
2715679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Unseal                     *
2725679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+ENCRYPT_2)),                                // 0x015e
2735679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)                                 (NOT_IMPLEMENTED),
2745679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x015f - Not assigned
2755679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicySigned               * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
2765679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0160
2775679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ContextLoad                * (IS_IMPLEMENTED+NO_SESSIONS+R_HANDLE)),
2785679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0161
2795679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ContextSave                * (IS_IMPLEMENTED+NO_SESSIONS)),
2805679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0162
2815679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ECDH_KeyGen                * (IS_IMPLEMENTED+ENCRYPT_2)),
2825679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0163
2835679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_EncryptDecrypt             *
2845679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+HANDLE_1_USER+ENCRYPT_2)),                                // 0x0164
2855679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_FlushContext               * (IS_IMPLEMENTED+NO_SESSIONS)),
2865679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0165
2875679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)                                 (NOT_IMPLEMENTED),
2885679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0166 - Not assigned
2895679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_LoadExternal               *
2905679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2+R_HANDLE)),                           // 0x0167
2915679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_MakeCredential             * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
2925679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0168
2935679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_ReadPublic              * (IS_IMPLEMENTED+ENCRYPT_2)),
2945679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0169
2955679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyAuthorize            * (IS_IMPLEMENTED+DECRYPT_2)),
2965679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x016a
2975679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyAuthValue            * (IS_IMPLEMENTED)),
2985679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x016b
2995679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyCommandCode          * (IS_IMPLEMENTED)),
3005679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x016c
3015679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyCounterTimer         * (IS_IMPLEMENTED+DECRYPT_2)),
3025679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x016d
3035679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyCpHash               * (IS_IMPLEMENTED+DECRYPT_2)),
3045679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x016e
3055679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyLocality             * (IS_IMPLEMENTED)),
3065679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x016f
3075679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyNameHash             * (IS_IMPLEMENTED+DECRYPT_2)),
3085679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0170
3095679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyOR                   * (IS_IMPLEMENTED)),
3105679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0171
3115679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyTicket               * (IS_IMPLEMENTED+DECRYPT_2)),
3125679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0172
3135679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ReadPublic                 * (IS_IMPLEMENTED+ENCRYPT_2)),
3145679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0173
3155679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_RSA_Encrypt                * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
3165679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0174
3175679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)                                 (NOT_IMPLEMENTED),
3185679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0175 - Not assigned
3195679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_StartAuthSession           *
3205679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2+R_HANDLE)),                           // 0x0176
3215679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_VerifySignature            * (IS_IMPLEMENTED+DECRYPT_2)),
3225679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0177
3235679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ECC_Parameters             * (IS_IMPLEMENTED)),
3245679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0178
3255679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_FirmwareRead               * (IS_IMPLEMENTED+ENCRYPT_2)),
3265679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0179
3275679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_GetCapability              * (IS_IMPLEMENTED)),
3285679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x017a
3295679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_GetRandom                  * (IS_IMPLEMENTED+ENCRYPT_2)),
3305679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x017b
3315679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_GetTestResult              * (IS_IMPLEMENTED+ENCRYPT_2)),
3325679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x017c
3335679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Hash                       * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
3345679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x017d
3355679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_Read                   * (IS_IMPLEMENTED)),
3365679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x017e
3375679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyPCR                  * (IS_IMPLEMENTED+DECRYPT_2)),
3385679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x017f
3395679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyRestart              * (IS_IMPLEMENTED)),
3405679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0180
3415679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ReadClock                  * (IS_IMPLEMENTED+NO_SESSIONS)),
3425679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0181
3435679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_Extend                 * (IS_IMPLEMENTED+HANDLE_1_USER)),
3445679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0182
3455679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PCR_SetAuthValue           *
3465679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)),                                // 0x0183
3475679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_NV_Certify                 *
3485679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)),        // 0x0184
3495679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_EventSequenceComplete      *
3505679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER)),                  // 0x0185
3515679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_HashSequenceStart          * (IS_IMPLEMENTED+DECRYPT_2+R_HANDLE)),
3525679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0186
3535679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyPhysicalPresence     * (IS_IMPLEMENTED)),
3545679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0187
3555679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyDuplicationSelect    * (IS_IMPLEMENTED+DECRYPT_2)),
3565679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0188
3575679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyGetDigest            * (IS_IMPLEMENTED+ENCRYPT_2)),
3585679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x0189
3595679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_TestParms                  * (IS_IMPLEMENTED)),
3605679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x018a
3615679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_Commit                     *
3625679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x018b
3635679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyPassword             * (IS_IMPLEMENTED)),
3645679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x018c
3655679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_ZGen_2Phase                *
3665679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)),                      // 0x018d
3675679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_EC_Ephemeral               * (IS_IMPLEMENTED+ENCRYPT_2)),
3685679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x018e
3695679752bf24c21135884e987c4077e2f7184897Vadim Bendebury   (_ATTR_)(CC_PolicyNvWritten            * (IS_IMPLEMENTED))
3705679752bf24c21135884e987c4077e2f7184897Vadim Bendebury      // 0x018f
3715679752bf24c21135884e987c4077e2f7184897Vadim Bendebury};
372