1 2 /* 3 * Licensed Materials - Property of IBM 4 * 5 * trousers - An open source TCG Software Stack 6 * 7 * (C) Copyright International Business Machines Corp. 2005, 2007 8 * 9 */ 10 11 12 #ifndef _TCSD_COMMANDS_H_ 13 #define _TCSD_COMMANDS_H_ 14 15 #include "tcsd_wrap.h" 16 17 #define OPENCONTEXT TCSD_ORD_OPENCONTEXT 18 #define CLOSECONTEXT TCSD_ORD_CLOSECONTEXT 19 #define FREEMEMORY TCSD_ORD_FREEMEMORY 20 #define TCSGETCAPABILITY TCSD_ORD_TCSGETCAPABILITY 21 #define REGISTERKEY TCSD_ORD_REGISTERKEY 22 #define UNREGISTERKEY TCSD_ORD_UNREGISTERKEY 23 #define GETREGISTEREDKEYBLOB TCSD_ORD_GETREGISTEREDKEYBLOB 24 #define GETREGISTEREDKEYBYPUBLICINFO TCSD_ORD_GETREGISTEREDKEYBYPUBLICINFO 25 #define GETPUBKEY TCSD_ORD_GETPUBKEY 26 #define LOADKEYBYBLOB TCSD_ORD_LOADKEYBYBLOB 27 #define LOADKEYBYUUID TCSD_ORD_LOADKEYBYUUID 28 #define CREATEWRAPKEY TCSD_ORD_CREATEWRAPKEY 29 #define GETPCREVENTLOG TCSD_ORD_GETPCREVENTLOG 30 #define OIAP TCSD_ORD_OIAP 31 #define OSAP TCSD_ORD_OSAP 32 #define TERMINATEHANDLE TCSD_ORD_TERMINATEHANDLE 33 #define PCRREAD TCSD_ORD_PCRREAD 34 #define PCRRESET TCSD_ORD_PCRRESET 35 #define QUOTE TCSD_ORD_QUOTE 36 #define SEAL TCSD_ORD_SEAL 37 #define UNSEAL TCSD_ORD_UNSEAL 38 #define UNBIND TCSD_ORD_UNBIND 39 #define CERTIFYKEY TCSD_ORD_CERTIFYKEY 40 #define SIGN TCSD_ORD_SIGN 41 #define GETRANDOM TCSD_ORD_GETRANDOM 42 #define STIRRANDOM TCSD_ORD_STIRRANDOM 43 #define GETCAPABILITY TCSD_ORD_GETCAPABILITY 44 #define READPUBEK TCSD_ORD_READPUBEK 45 #define SELFTESTFULL TCSD_ORD_SELFTESTFULL 46 #define CERTIFYSELFTEST TCSD_ORD_CERTIFYSELFTEST 47 #define CONTINUESELFTEST TCSD_ORD_CONTINUESELFTEST 48 #define GETTESTRESULT TCSD_ORD_GETTESTRESULT 49 /* below this line are ordinals that probably shouldn't be allowed for non-localhosts */ 50 #if 0 51 #define OWNERREADPUBEK TCSD_ORD_OWNERREADPUBEK 52 #define GETPCREVENT TCSD_ORD_GETPCREVENT 53 #define GETPCREVENTBYPCR TCSD_ORD_GETPCREVENTBYPCR 54 #define GETCAPABILITYSIGNED TCSD_ORD_GETCAPABILITYSIGNED 55 #define ENUMREGISTEREDKEYS TCSD_ORD_ENUMREGISTEREDKEYS 56 #define ENUMREGISTEREDKEYS2 TCSD_ORD_ENUMREGISTEREDKEYS2 57 #define GETREGISTEREDKEY TCSD_ORD_GETREGISTEREDKEY 58 #define EXTEND TCSD_ORD_EXTEND 59 #define LOGPCREVENT TCSD_ORD_LOGPCREVENT 60 #define EVICTKEY TCSD_ORD_EVICTKEY 61 #define DISABLEPUBEKREAD TCSD_ORD_DISABLEPUBEKREAD 62 #define SETOWNERINSTALL TCSD_ORD_SETOWNERINSTALL 63 #define MAKEIDENTITY TCSD_ORD_MAKEIDENTITY 64 #define MAKEIDENTITY2 TCSD_ORD_MAKEIDENTITY2 65 #define TAKEOWNERSHIP TCSD_ORD_TAKEOWNERSHIP 66 #define CREATEENDORSEMENTKEYPAIR TCSD_ORD_CREATEENDORSEMENTKEYPAIR 67 #define GETCAPABILITYOWNER TCSD_ORD_GETCAPABILITYOWNER 68 #define ACTIVATETPMIDENTITY TCSD_ORD_ACTIVATETPMIDENTITY 69 #define AUTHORIZEMIGRATIONKEY TCSD_ORD_AUTHORIZEMIGRATIONKEY 70 #define CHANGEAUTH TCSD_ORD_CHANGEAUTH 71 #define CHANGEAUTHOWNER TCSD_ORD_CHANGEAUTHOWNER 72 #define CHANGEAUTHASYMSTART TCSD_ORD_CHANGEAUTHASYMSTART 73 #define CHANGEAUTHASYMFINISH TCSD_ORD_CHANGEAUTHASYMFINISH 74 #define DIRREAD TCSD_ORD_DIRREAD 75 #define DIRWRITEAUTH TCSD_ORD_DIRWRITEAUTH 76 #define CREATEMIGRATIONBLOB TCSD_ORD_CREATEMIGRATIONBLOB 77 #define CONVERTMIGRATIONBLOB TCSD_ORD_CONVERTMIGRATIONBLOB 78 #define OWNERSETDISABLE TCSD_ORD_OWNERSETDISABLE 79 #define OWNERCLEAR TCSD_ORD_OWNERCLEAR 80 #define DISABLEOWNERCLEAR TCSD_ORD_DISABLEOWNERCLEAR 81 #define FORCECLEAR TCSD_ORD_FORCECLEAR 82 #define DISABLEFORCECLEAR TCSD_ORD_DISABLEFORCECLEAR 83 #define PHYSICALDISABLE TCSD_ORD_PHYSICALDISABLE 84 #define PHYSICALENABLE TCSD_ORD_PHYSICALENABLE 85 #define PHYSICALSETDEACTIVATED TCSD_ORD_PHYSICALSETDEACTIVATED 86 #define SETTEMPDEACTIVATED TCSD_ORD_SETTEMPDEACTIVATED 87 #define PHYSICALPRESENCE TCSD_ORD_PHYSICALPRESENCE 88 #define FIELDUPGRADE TCSD_ORD_FIELDUPGRADE 89 #define SETRIDIRECTION TCSD_ORD_SETRIDIRECTION 90 #define CREATEMAINTENANCEARCHIVE TCSD_ORD_CREATEMAINTENANCEARCHIVE 91 #define LOADMAINTENANCEARCHIVE TCSD_ORD_LOADMAINTENANCEARCHIVE 92 #define KILLMAINTENANCEFEATURE TCSD_ORD_KILLMAINTENANCEFEATURE 93 #define LOADMANUFECTURERMAINTENANCEPUB TCSD_ORD_LOADMANUFECTURERMAINTENANCEPUB 94 #define READMANUFECTURERMAINTENANCEPUB TCSD_ORD_READMANUFECTURERMAINTENANCEPUB 95 #define SETTEMPDEACTIVATED2 TCSD_ORD_SETTEMPDEACTIVATED2 96 #endif 97 98 /* TCSD ordinal sub-command sets */ 99 #define SUBOP_CONTEXT OPENCONTEXT, CLOSECONTEXT 100 #define SUBOP_RANDOM STIRRANDOM, GETRANDOM 101 #define SUBOP_AUTHSESS OIAP, OSAP, TERMINATEHANDLE 102 #define SUBOP_LOADKEYBYUUID LOADKEYBYUUID, GETREGISTEREDKEYBLOB, FREEMEMORY 103 #define SUBOP_SELFTEST SELFTESTFULL, CERTIFYSELFTEST, CONTINUESELFTEST, GETTESTRESULT 104 105 /* Top level TCSD operations which can be enabled to be used by remote hosts. Each of these 106 * should have a corresponding on/off switch in the tcsd.conf file 107 */ 108 #define TCSD_OP_SEAL SEAL, SUBOP_LOADKEYBYUUID, SUBOP_RANDOM, SUBOP_AUTHSESS, SUBOP_CONTEXT, 0 109 #define TCSD_OP_UNSEAL UNSEAL, SUBOP_LOADKEYBYUUID, SUBOP_RANDOM, SUBOP_AUTHSESS, SUBOP_CONTEXT, 0 110 #define TCSD_OP_GETREGISTEREDKEYBYPUBLICINFO GETREGISTEREDKEYBYPUBLICINFO, SUBOP_CONTEXT, 0 111 #define TCSD_OP_GETPUBKEY GETPUBKEY, SUBOP_RANDOM, SUBOP_AUTHSESS, SUBOP_CONTEXT, 0 112 #define TCSD_OP_LOADKEY LOADKEYBYBLOB, SUBOP_LOADKEYBYUUID, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 113 #define TCSD_OP_REGISTERKEY REGISTERKEY, SUBOP_CONTEXT, SUBOP_LOADKEYBYUUID, LOADKEYBYBLOB, 0 114 #define TCSD_OP_UNREGISTERKEY UNREGISTERKEY, SUBOP_CONTEXT, 0 115 #define TCSD_OP_CREATEKEY CREATEWRAPKEY, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_LOADKEYBYUUID, SUBOP_RANDOM, 0 116 #define TCSD_OP_SIGN SIGN, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, FREEMEMORY, 0 117 #define TCSD_OP_RANDOM SUBOP_RANDOM, SUBOP_CONTEXT, FREEMEMORY, 0 118 #define TCSD_OP_GETCAPABILITY GETCAPABILITY, TCSGETCAPABILITY, SUBOP_CONTEXT, FREEMEMORY, 0 119 #define TCSD_OP_UNBIND UNBIND, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 120 #define TCSD_OP_QUOTE QUOTE, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 121 #define TCSD_OP_READPUBEK READPUBEK, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 122 #define TCSD_OP_SELFTEST SUBOP_SELFTEST, SUBOP_CONTEXT, FREEMEMORY, 0 123 124 struct tcsd_op { 125 char *name; 126 int op[]; 127 }; 128 129 struct tcsd_op tcsd_op_seal = {"seal", {TCSD_OP_SEAL}}; 130 struct tcsd_op tcsd_op_unseal = {"unseal", {TCSD_OP_UNSEAL}}; 131 struct tcsd_op tcsd_op_registerkey = {"registerkey", {TCSD_OP_REGISTERKEY}}; 132 struct tcsd_op tcsd_op_unregisterkey = {"unregisterkey", {TCSD_OP_UNREGISTERKEY}}; 133 struct tcsd_op tcsd_op_getregisteredkeybypublicinfo = {"getregisteredkeybypublicinfo", {TCSD_OP_GETREGISTEREDKEYBYPUBLICINFO}}; 134 struct tcsd_op tcsd_op_getpubkey = {"getpubkey", {TCSD_OP_GETPUBKEY}}; 135 struct tcsd_op tcsd_op_loadkey = {"loadkey", {TCSD_OP_LOADKEY}}; 136 struct tcsd_op tcsd_op_createkey = {"createkey", {TCSD_OP_CREATEKEY}}; 137 struct tcsd_op tcsd_op_sign = {"sign", {TCSD_OP_SIGN}}; 138 struct tcsd_op tcsd_op_random = {"random", {TCSD_OP_RANDOM}}; 139 struct tcsd_op tcsd_op_getcapability = {"getcapability", {TCSD_OP_GETCAPABILITY}}; 140 struct tcsd_op tcsd_op_unbind = {"unbind", {TCSD_OP_UNBIND}}; 141 struct tcsd_op tcsd_op_quote = {"quote", {TCSD_OP_QUOTE}}; 142 struct tcsd_op tcsd_op_readpubek = {"readpubek", {TCSD_OP_READPUBEK}}; 143 struct tcsd_op tcsd_op_selftest = {"selftest", {TCSD_OP_SELFTEST}}; 144 145 struct tcsd_op *tcsd_ops[] = { 146 &tcsd_op_seal, 147 &tcsd_op_unseal, 148 &tcsd_op_registerkey, 149 &tcsd_op_unregisterkey, 150 &tcsd_op_getregisteredkeybypublicinfo, 151 &tcsd_op_getpubkey, 152 &tcsd_op_loadkey, 153 &tcsd_op_createkey, 154 &tcsd_op_sign, 155 &tcsd_op_random, 156 &tcsd_op_getcapability, 157 &tcsd_op_unbind, 158 &tcsd_op_quote, 159 &tcsd_op_readpubek, 160 &tcsd_op_selftest, 161 NULL 162 }; 163 164 #endif 165