1 /* Copyright 2012 The ChromiumOS Authors
2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file.
4 */
5
6 #include "2sysincludes.h"
7 #include "tlcl.h"
8 #include "tlcl_internal.h"
9
TlclLibInit(void)10 uint32_t TlclLibInit(void)
11 {
12 return TPM_SUCCESS;
13 }
14
TlclLibClose(void)15 uint32_t TlclLibClose(void)
16 {
17 return TPM_SUCCESS;
18 }
19
TlclStartup(void)20 uint32_t TlclStartup(void)
21 {
22 return TPM_SUCCESS;
23 }
24
TlclSaveState(void)25 uint32_t TlclSaveState(void)
26 {
27 return TPM_SUCCESS;
28 }
29
TlclResume(void)30 uint32_t TlclResume(void)
31 {
32 return TPM_SUCCESS;
33 }
34
TlclSelfTestFull(void)35 uint32_t TlclSelfTestFull(void)
36 {
37 return TPM_SUCCESS;
38 }
39
TlclContinueSelfTest(void)40 uint32_t TlclContinueSelfTest(void)
41 {
42 return TPM_SUCCESS;
43 }
44
TlclDefineSpace(uint32_t index,uint32_t perm,uint32_t size)45 uint32_t TlclDefineSpace(uint32_t index, uint32_t perm, uint32_t size)
46 {
47 return TPM_SUCCESS;
48 }
49
TlclDefineSpaceEx(const uint8_t * owner_auth,uint32_t owner_auth_size,uint32_t index,uint32_t perm,uint32_t size,const void * auth_policy,uint32_t auth_policy_size)50 uint32_t TlclDefineSpaceEx(const uint8_t* owner_auth, uint32_t owner_auth_size,
51 uint32_t index, uint32_t perm, uint32_t size,
52 const void* auth_policy, uint32_t auth_policy_size)
53 {
54 return TPM_SUCCESS;
55 }
56
57 #ifdef CHROMEOS_ENVIRONMENT
58
TlclUndefineSpace(uint32_t index)59 uint32_t TlclUndefineSpace(uint32_t index)
60 {
61 return TPM_SUCCESS;
62 }
63
64 #endif /* CHROMEOS_ENVIRONMENT */
65
TlclWrite(uint32_t index,const void * data,uint32_t length)66 uint32_t TlclWrite(uint32_t index, const void* data, uint32_t length)
67 {
68 return TPM_SUCCESS;
69 }
70
TlclRead(uint32_t index,void * data,uint32_t length)71 uint32_t TlclRead(uint32_t index, void* data, uint32_t length)
72 {
73 memset(data, '\0', length);
74 return TPM_SUCCESS;
75 }
76
TlclPCRRead(uint32_t index,void * data,uint32_t length)77 uint32_t TlclPCRRead(uint32_t index, void* data, uint32_t length)
78 {
79 memset(data, '\0', length);
80 return TPM_SUCCESS;
81 }
82
TlclWriteLock(uint32_t index)83 uint32_t TlclWriteLock(uint32_t index)
84 {
85 return TPM_SUCCESS;
86 }
87
TlclReadLock(uint32_t index)88 uint32_t TlclReadLock(uint32_t index)
89 {
90 return TPM_SUCCESS;
91 }
92
TlclAssertPhysicalPresence(void)93 uint32_t TlclAssertPhysicalPresence(void)
94 {
95 return TPM_SUCCESS;
96 }
97
TlclPhysicalPresenceCMDEnable(void)98 uint32_t TlclPhysicalPresenceCMDEnable(void)
99 {
100 return TPM_SUCCESS;
101 }
102
TlclFinalizePhysicalPresence(void)103 uint32_t TlclFinalizePhysicalPresence(void)
104 {
105 return TPM_SUCCESS;
106 }
107
TlclAssertPhysicalPresenceResult(void)108 uint32_t TlclAssertPhysicalPresenceResult(void)
109 {
110 return TPM_SUCCESS;
111 }
112
TlclLockPhysicalPresence(void)113 uint32_t TlclLockPhysicalPresence(void)
114 {
115 return TPM_SUCCESS;
116 }
117
TlclSetNvLocked(void)118 uint32_t TlclSetNvLocked(void)
119 {
120 return TPM_SUCCESS;
121 }
122
TlclIsOwned(void)123 int TlclIsOwned(void)
124 {
125 return 0;
126 }
127
TlclForceClear(void)128 uint32_t TlclForceClear(void)
129 {
130 return TPM_SUCCESS;
131 }
132
TlclSetEnable(void)133 uint32_t TlclSetEnable(void)
134 {
135 return TPM_SUCCESS;
136 }
137
TlclClearEnable(void)138 uint32_t TlclClearEnable(void)
139 {
140 return TPM_SUCCESS;
141 }
142
TlclSetDeactivated(uint8_t flag)143 uint32_t TlclSetDeactivated(uint8_t flag)
144 {
145 return TPM_SUCCESS;
146 }
147
TlclGetPermanentFlags(TPM_PERMANENT_FLAGS * pflags)148 uint32_t TlclGetPermanentFlags(TPM_PERMANENT_FLAGS* pflags)
149 {
150 memset(pflags, '\0', sizeof(*pflags));
151 return TPM_SUCCESS;
152 }
153
TlclGetSTClearFlags(TPM_STCLEAR_FLAGS * vflags)154 uint32_t TlclGetSTClearFlags(TPM_STCLEAR_FLAGS* vflags)
155 {
156 memset(vflags, '\0', sizeof(*vflags));
157 return TPM_SUCCESS;
158 }
159
TlclGetFlags(uint8_t * disable,uint8_t * deactivated,uint8_t * nvlocked)160 uint32_t TlclGetFlags(uint8_t* disable,
161 uint8_t* deactivated,
162 uint8_t *nvlocked)
163 {
164 *disable = 0;
165 *deactivated = 0;
166 *nvlocked = 0;
167 return TPM_SUCCESS;
168 }
169
TlclSetGlobalLock(void)170 uint32_t TlclSetGlobalLock(void)
171 {
172 return TPM_SUCCESS;
173 }
174
TlclExtend(int pcr_num,const uint8_t * in_digest,uint8_t * out_digest)175 uint32_t TlclExtend(int pcr_num, const uint8_t* in_digest,
176 uint8_t* out_digest)
177 {
178 memcpy(out_digest, in_digest, kPcrDigestLength);
179 return TPM_SUCCESS;
180 }
181
TlclGetPermissions(uint32_t index,uint32_t * permissions)182 uint32_t TlclGetPermissions(uint32_t index, uint32_t* permissions)
183 {
184 *permissions = 0;
185 return TPM_SUCCESS;
186 }
187
TlclGetOwnership(uint8_t * owned)188 uint32_t TlclGetOwnership(uint8_t* owned)
189 {
190 *owned = 0;
191 return TPM_SUCCESS;
192 }
193
TlclGetRandom(uint8_t * data,uint32_t length,uint32_t * size)194 uint32_t TlclGetRandom(uint8_t* data, uint32_t length, uint32_t *size)
195 {
196 *size = length;
197 /* http://dilbert.com/strips/comic/2001-10-25/ */
198 memset(data, '\x9', *size);
199 return TPM_SUCCESS;
200 }
201
TlclGetVersion(uint32_t * vendor,uint64_t * firmware_version,uint8_t * vendor_specific_buf,size_t * vendor_specific_buf_size)202 uint32_t TlclGetVersion(uint32_t* vendor, uint64_t* firmware_version,
203 uint8_t* vendor_specific_buf,
204 size_t* vendor_specific_buf_size)
205 {
206 *vendor = 0x4e4f4e45;
207 *firmware_version = 0x1;
208 if (vendor_specific_buf_size) {
209 *vendor_specific_buf_size = 0;
210 }
211 return TPM_SUCCESS;
212 }
213
TlclPacketSize(const uint8_t * packet)214 int TlclPacketSize(const uint8_t* packet)
215 {
216 uint32_t size;
217 FromTpmUint32(packet + sizeof(uint16_t), &size);
218 return (int) size;
219 }
220
TlclSendReceive(const uint8_t * request,uint8_t * response,int max_length)221 uint32_t TlclSendReceive(const uint8_t* request, uint8_t* response,
222 int max_length)
223 {
224 return TPM_SUCCESS;
225 }
226
TlclIFXFieldUpgradeInfo(TPM_IFX_FIELDUPGRADEINFO * info)227 uint32_t TlclIFXFieldUpgradeInfo(TPM_IFX_FIELDUPGRADEINFO* info)
228 {
229 memset(info, 0, sizeof(*info));
230 return TPM_SUCCESS;
231 }
232