/* * Licensed Materials - Property of IBM * * trousers - An open source TCG Software Stack * * (C) Copyright International Business Machines Corp. 2005, 2007 * */ #ifndef _TCSD_COMMANDS_H_ #define _TCSD_COMMANDS_H_ #include "tcsd_wrap.h" #define OPENCONTEXT TCSD_ORD_OPENCONTEXT #define CLOSECONTEXT TCSD_ORD_CLOSECONTEXT #define FREEMEMORY TCSD_ORD_FREEMEMORY #define TCSGETCAPABILITY TCSD_ORD_TCSGETCAPABILITY #define REGISTERKEY TCSD_ORD_REGISTERKEY #define UNREGISTERKEY TCSD_ORD_UNREGISTERKEY #define GETREGISTEREDKEYBLOB TCSD_ORD_GETREGISTEREDKEYBLOB #define GETREGISTEREDKEYBYPUBLICINFO TCSD_ORD_GETREGISTEREDKEYBYPUBLICINFO #define GETPUBKEY TCSD_ORD_GETPUBKEY #define LOADKEYBYBLOB TCSD_ORD_LOADKEYBYBLOB #define LOADKEYBYUUID TCSD_ORD_LOADKEYBYUUID #define CREATEWRAPKEY TCSD_ORD_CREATEWRAPKEY #define GETPCREVENTLOG TCSD_ORD_GETPCREVENTLOG #define OIAP TCSD_ORD_OIAP #define OSAP TCSD_ORD_OSAP #define TERMINATEHANDLE TCSD_ORD_TERMINATEHANDLE #define PCRREAD TCSD_ORD_PCRREAD #define PCRRESET TCSD_ORD_PCRRESET #define QUOTE TCSD_ORD_QUOTE #define SEAL TCSD_ORD_SEAL #define UNSEAL TCSD_ORD_UNSEAL #define UNBIND TCSD_ORD_UNBIND #define CERTIFYKEY TCSD_ORD_CERTIFYKEY #define SIGN TCSD_ORD_SIGN #define GETRANDOM TCSD_ORD_GETRANDOM #define STIRRANDOM TCSD_ORD_STIRRANDOM #define GETCAPABILITY TCSD_ORD_GETCAPABILITY #define READPUBEK TCSD_ORD_READPUBEK #define SELFTESTFULL TCSD_ORD_SELFTESTFULL #define CERTIFYSELFTEST TCSD_ORD_CERTIFYSELFTEST #define CONTINUESELFTEST TCSD_ORD_CONTINUESELFTEST #define GETTESTRESULT TCSD_ORD_GETTESTRESULT /* below this line are ordinals that probably shouldn't be allowed for non-localhosts */ #if 0 #define OWNERREADPUBEK TCSD_ORD_OWNERREADPUBEK #define GETPCREVENT TCSD_ORD_GETPCREVENT #define GETPCREVENTBYPCR TCSD_ORD_GETPCREVENTBYPCR #define GETCAPABILITYSIGNED TCSD_ORD_GETCAPABILITYSIGNED #define ENUMREGISTEREDKEYS TCSD_ORD_ENUMREGISTEREDKEYS #define ENUMREGISTEREDKEYS2 TCSD_ORD_ENUMREGISTEREDKEYS2 #define GETREGISTEREDKEY TCSD_ORD_GETREGISTEREDKEY #define EXTEND TCSD_ORD_EXTEND #define LOGPCREVENT TCSD_ORD_LOGPCREVENT #define EVICTKEY TCSD_ORD_EVICTKEY #define DISABLEPUBEKREAD TCSD_ORD_DISABLEPUBEKREAD #define SETOWNERINSTALL TCSD_ORD_SETOWNERINSTALL #define MAKEIDENTITY TCSD_ORD_MAKEIDENTITY #define MAKEIDENTITY2 TCSD_ORD_MAKEIDENTITY2 #define TAKEOWNERSHIP TCSD_ORD_TAKEOWNERSHIP #define CREATEENDORSEMENTKEYPAIR TCSD_ORD_CREATEENDORSEMENTKEYPAIR #define GETCAPABILITYOWNER TCSD_ORD_GETCAPABILITYOWNER #define ACTIVATETPMIDENTITY TCSD_ORD_ACTIVATETPMIDENTITY #define AUTHORIZEMIGRATIONKEY TCSD_ORD_AUTHORIZEMIGRATIONKEY #define CHANGEAUTH TCSD_ORD_CHANGEAUTH #define CHANGEAUTHOWNER TCSD_ORD_CHANGEAUTHOWNER #define CHANGEAUTHASYMSTART TCSD_ORD_CHANGEAUTHASYMSTART #define CHANGEAUTHASYMFINISH TCSD_ORD_CHANGEAUTHASYMFINISH #define DIRREAD TCSD_ORD_DIRREAD #define DIRWRITEAUTH TCSD_ORD_DIRWRITEAUTH #define CREATEMIGRATIONBLOB TCSD_ORD_CREATEMIGRATIONBLOB #define CONVERTMIGRATIONBLOB TCSD_ORD_CONVERTMIGRATIONBLOB #define OWNERSETDISABLE TCSD_ORD_OWNERSETDISABLE #define OWNERCLEAR TCSD_ORD_OWNERCLEAR #define DISABLEOWNERCLEAR TCSD_ORD_DISABLEOWNERCLEAR #define FORCECLEAR TCSD_ORD_FORCECLEAR #define DISABLEFORCECLEAR TCSD_ORD_DISABLEFORCECLEAR #define PHYSICALDISABLE TCSD_ORD_PHYSICALDISABLE #define PHYSICALENABLE TCSD_ORD_PHYSICALENABLE #define PHYSICALSETDEACTIVATED TCSD_ORD_PHYSICALSETDEACTIVATED #define SETTEMPDEACTIVATED TCSD_ORD_SETTEMPDEACTIVATED #define PHYSICALPRESENCE TCSD_ORD_PHYSICALPRESENCE #define FIELDUPGRADE TCSD_ORD_FIELDUPGRADE #define SETRIDIRECTION TCSD_ORD_SETRIDIRECTION #define CREATEMAINTENANCEARCHIVE TCSD_ORD_CREATEMAINTENANCEARCHIVE #define LOADMAINTENANCEARCHIVE TCSD_ORD_LOADMAINTENANCEARCHIVE #define KILLMAINTENANCEFEATURE TCSD_ORD_KILLMAINTENANCEFEATURE #define LOADMANUFECTURERMAINTENANCEPUB TCSD_ORD_LOADMANUFECTURERMAINTENANCEPUB #define READMANUFECTURERMAINTENANCEPUB TCSD_ORD_READMANUFECTURERMAINTENANCEPUB #define SETTEMPDEACTIVATED2 TCSD_ORD_SETTEMPDEACTIVATED2 #endif /* TCSD ordinal sub-command sets */ #define SUBOP_CONTEXT OPENCONTEXT, CLOSECONTEXT #define SUBOP_RANDOM STIRRANDOM, GETRANDOM #define SUBOP_AUTHSESS OIAP, OSAP, TERMINATEHANDLE #define SUBOP_LOADKEYBYUUID LOADKEYBYUUID, GETREGISTEREDKEYBLOB, FREEMEMORY #define SUBOP_SELFTEST SELFTESTFULL, CERTIFYSELFTEST, CONTINUESELFTEST, GETTESTRESULT /* Top level TCSD operations which can be enabled to be used by remote hosts. Each of these * should have a corresponding on/off switch in the tcsd.conf file */ #define TCSD_OP_SEAL SEAL, SUBOP_LOADKEYBYUUID, SUBOP_RANDOM, SUBOP_AUTHSESS, SUBOP_CONTEXT, 0 #define TCSD_OP_UNSEAL UNSEAL, SUBOP_LOADKEYBYUUID, SUBOP_RANDOM, SUBOP_AUTHSESS, SUBOP_CONTEXT, 0 #define TCSD_OP_GETREGISTEREDKEYBYPUBLICINFO GETREGISTEREDKEYBYPUBLICINFO, SUBOP_CONTEXT, 0 #define TCSD_OP_GETPUBKEY GETPUBKEY, SUBOP_RANDOM, SUBOP_AUTHSESS, SUBOP_CONTEXT, 0 #define TCSD_OP_LOADKEY LOADKEYBYBLOB, SUBOP_LOADKEYBYUUID, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 #define TCSD_OP_REGISTERKEY REGISTERKEY, SUBOP_CONTEXT, SUBOP_LOADKEYBYUUID, LOADKEYBYBLOB, 0 #define TCSD_OP_UNREGISTERKEY UNREGISTERKEY, SUBOP_CONTEXT, 0 #define TCSD_OP_CREATEKEY CREATEWRAPKEY, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_LOADKEYBYUUID, SUBOP_RANDOM, 0 #define TCSD_OP_SIGN SIGN, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, FREEMEMORY, 0 #define TCSD_OP_RANDOM SUBOP_RANDOM, SUBOP_CONTEXT, FREEMEMORY, 0 #define TCSD_OP_GETCAPABILITY GETCAPABILITY, TCSGETCAPABILITY, SUBOP_CONTEXT, FREEMEMORY, 0 #define TCSD_OP_UNBIND UNBIND, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 #define TCSD_OP_QUOTE QUOTE, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 #define TCSD_OP_READPUBEK READPUBEK, SUBOP_CONTEXT, SUBOP_AUTHSESS, SUBOP_RANDOM, 0 #define TCSD_OP_SELFTEST SUBOP_SELFTEST, SUBOP_CONTEXT, FREEMEMORY, 0 struct tcsd_op { char *name; int op[]; }; struct tcsd_op tcsd_op_seal = {"seal", {TCSD_OP_SEAL}}; struct tcsd_op tcsd_op_unseal = {"unseal", {TCSD_OP_UNSEAL}}; struct tcsd_op tcsd_op_registerkey = {"registerkey", {TCSD_OP_REGISTERKEY}}; struct tcsd_op tcsd_op_unregisterkey = {"unregisterkey", {TCSD_OP_UNREGISTERKEY}}; struct tcsd_op tcsd_op_getregisteredkeybypublicinfo = {"getregisteredkeybypublicinfo", {TCSD_OP_GETREGISTEREDKEYBYPUBLICINFO}}; struct tcsd_op tcsd_op_getpubkey = {"getpubkey", {TCSD_OP_GETPUBKEY}}; struct tcsd_op tcsd_op_loadkey = {"loadkey", {TCSD_OP_LOADKEY}}; struct tcsd_op tcsd_op_createkey = {"createkey", {TCSD_OP_CREATEKEY}}; struct tcsd_op tcsd_op_sign = {"sign", {TCSD_OP_SIGN}}; struct tcsd_op tcsd_op_random = {"random", {TCSD_OP_RANDOM}}; struct tcsd_op tcsd_op_getcapability = {"getcapability", {TCSD_OP_GETCAPABILITY}}; struct tcsd_op tcsd_op_unbind = {"unbind", {TCSD_OP_UNBIND}}; struct tcsd_op tcsd_op_quote = {"quote", {TCSD_OP_QUOTE}}; struct tcsd_op tcsd_op_readpubek = {"readpubek", {TCSD_OP_READPUBEK}}; struct tcsd_op tcsd_op_selftest = {"selftest", {TCSD_OP_SELFTEST}}; struct tcsd_op *tcsd_ops[] = { &tcsd_op_seal, &tcsd_op_unseal, &tcsd_op_registerkey, &tcsd_op_unregisterkey, &tcsd_op_getregisteredkeybypublicinfo, &tcsd_op_getpubkey, &tcsd_op_loadkey, &tcsd_op_createkey, &tcsd_op_sign, &tcsd_op_random, &tcsd_op_getcapability, &tcsd_op_unbind, &tcsd_op_quote, &tcsd_op_readpubek, &tcsd_op_selftest, NULL }; #endif