xref: /aosp_15_r20/external/vboot_reference/firmware/lib/tpm_lite/mocked_tlcl.c (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
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