diff options
Diffstat (limited to 'src/include/tcsd_ops.h')
-rw-r--r-- | src/include/tcsd_ops.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/src/include/tcsd_ops.h b/src/include/tcsd_ops.h new file mode 100644 index 0000000..82df484 --- /dev/null +++ b/src/include/tcsd_ops.h @@ -0,0 +1,164 @@ + +/* + * 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 |