1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
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
|