blob: c22cd5669965da5fa9dfc2550b570dd4527f05b7 [file] [log] [blame]
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001// Copyright 2015 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// THIS CODE IS GENERATED - DO NOT MODIFY!
6
7#include "tpm_generated.h"
8#include "HandleProcess_fp.h"
9#include "Implementation.h"
10#include "TPM_Types.h"
11
12TPM_RC ParseHandleBuffer(TPM_CC command_code,
13 BYTE** request_handle_buffer_start,
14 INT32* request_buffer_remaining_size,
15 TPM_HANDLE request_handles[],
16 UINT32* num_request_handles) {
17 TPM_RC result = TPM_RC_SUCCESS;
18 *num_request_handles = 0;
Namyoon Woof4428142019-10-30 19:02:58 -070019
20 if (command_code & TPM_CCE_BIT_MASK) {
21 switch (command_code) {
22#if IS_CCE_ENABLED(PolicyFidoSigned)
23 case TPM_CCE_PolicyFidoSigned:
24 result = TPMI_DH_OBJECT_Unmarshal(
25 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
26 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
27 if (result != TPM_RC_SUCCESS)
28 return result;
29
30 ++(*num_request_handles);
31 result = TPMI_SH_POLICY_Unmarshal(
32 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
33 request_handle_buffer_start, request_buffer_remaining_size);
34 if (result != TPM_RC_SUCCESS)
35 return result;
36
37 ++(*num_request_handles);
38 return TPM_RC_SUCCESS;
39#endif
40 default:
41 break;
42 }
43 return TPM_RC_COMMAND_CODE;
44 }
45
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070046 switch (command_code) {
Vadim Bendeburyc3730f62019-01-15 11:59:05 -080047#if IS_CC_ENABLED(ActivateCredential)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070048 case TPM_CC_ActivateCredential:
49 result = TPMI_DH_OBJECT_Unmarshal(
50 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
51 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
52 if (result != TPM_RC_SUCCESS) {
53 return result;
54 }
55 ++(*num_request_handles);
56 result = TPMI_DH_OBJECT_Unmarshal(
57 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
58 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
59 if (result != TPM_RC_SUCCESS) {
60 return result;
61 }
62 ++(*num_request_handles);
63 return TPM_RC_SUCCESS;
64#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -080065#if IS_CC_ENABLED(Certify)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070066 case TPM_CC_Certify:
67 result = TPMI_DH_OBJECT_Unmarshal(
68 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
69 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
70 if (result != TPM_RC_SUCCESS) {
71 return result;
72 }
73 ++(*num_request_handles);
74 result = TPMI_DH_OBJECT_Unmarshal(
75 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
76 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
77 if (result != TPM_RC_SUCCESS) {
78 return result;
79 }
80 ++(*num_request_handles);
81 return TPM_RC_SUCCESS;
82#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -080083#if IS_CC_ENABLED(CertifyCreation)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070084 case TPM_CC_CertifyCreation:
85 result = TPMI_DH_OBJECT_Unmarshal(
86 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
87 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
88 if (result != TPM_RC_SUCCESS) {
89 return result;
90 }
91 ++(*num_request_handles);
92 result = TPMI_DH_OBJECT_Unmarshal(
93 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
94 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
95 if (result != TPM_RC_SUCCESS) {
96 return result;
97 }
98 ++(*num_request_handles);
99 return TPM_RC_SUCCESS;
100#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800101#if IS_CC_ENABLED(ChangeEPS)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700102 case TPM_CC_ChangeEPS:
103 result = TPMI_RH_PLATFORM_Unmarshal(
104 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
105 request_handle_buffer_start, request_buffer_remaining_size);
106 if (result != TPM_RC_SUCCESS) {
107 return result;
108 }
109 ++(*num_request_handles);
110 return TPM_RC_SUCCESS;
111#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800112#if IS_CC_ENABLED(ChangePPS)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700113 case TPM_CC_ChangePPS:
114 result = TPMI_RH_PLATFORM_Unmarshal(
115 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
116 request_handle_buffer_start, request_buffer_remaining_size);
117 if (result != TPM_RC_SUCCESS) {
118 return result;
119 }
120 ++(*num_request_handles);
121 return TPM_RC_SUCCESS;
122#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800123#if IS_CC_ENABLED(Clear)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700124 case TPM_CC_Clear:
125 result = TPMI_RH_CLEAR_Unmarshal(
126 (TPMI_RH_CLEAR*)&request_handles[*num_request_handles],
127 request_handle_buffer_start, request_buffer_remaining_size);
128 if (result != TPM_RC_SUCCESS) {
129 return result;
130 }
131 ++(*num_request_handles);
132 return TPM_RC_SUCCESS;
133#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800134#if IS_CC_ENABLED(ClearControl)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700135 case TPM_CC_ClearControl:
136 result = TPMI_RH_CLEAR_Unmarshal(
137 (TPMI_RH_CLEAR*)&request_handles[*num_request_handles],
138 request_handle_buffer_start, request_buffer_remaining_size);
139 if (result != TPM_RC_SUCCESS) {
140 return result;
141 }
142 ++(*num_request_handles);
143 return TPM_RC_SUCCESS;
144#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800145#if IS_CC_ENABLED(ClockRateAdjust)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700146 case TPM_CC_ClockRateAdjust:
147 result = TPMI_RH_PROVISION_Unmarshal(
148 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
149 request_handle_buffer_start, request_buffer_remaining_size);
150 if (result != TPM_RC_SUCCESS) {
151 return result;
152 }
153 ++(*num_request_handles);
154 return TPM_RC_SUCCESS;
155#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800156#if IS_CC_ENABLED(ClockSet)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700157 case TPM_CC_ClockSet:
158 result = TPMI_RH_PROVISION_Unmarshal(
159 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
160 request_handle_buffer_start, request_buffer_remaining_size);
161 if (result != TPM_RC_SUCCESS) {
162 return result;
163 }
164 ++(*num_request_handles);
165 return TPM_RC_SUCCESS;
166#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800167#if IS_CC_ENABLED(Commit)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700168 case TPM_CC_Commit:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700169 result = TPMI_DH_OBJECT_Unmarshal(
170 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
171 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
172 if (result != TPM_RC_SUCCESS) {
173 return result;
174 }
175 ++(*num_request_handles);
176 return TPM_RC_SUCCESS;
177#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800178#if IS_CC_ENABLED(ContextLoad)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700179 case TPM_CC_ContextLoad:
180 return TPM_RC_SUCCESS;
181#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800182#if IS_CC_ENABLED(ContextSave)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700183 case TPM_CC_ContextSave:
184 result = TPMI_DH_CONTEXT_Unmarshal(
185 (TPMI_DH_CONTEXT*)&request_handles[*num_request_handles],
186 request_handle_buffer_start, request_buffer_remaining_size);
187 if (result != TPM_RC_SUCCESS) {
188 return result;
189 }
190 ++(*num_request_handles);
191 return TPM_RC_SUCCESS;
192#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800193#if IS_CC_ENABLED(Create)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700194 case TPM_CC_Create:
195 result = TPMI_DH_OBJECT_Unmarshal(
196 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
197 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
198 if (result != TPM_RC_SUCCESS) {
199 return result;
200 }
201 ++(*num_request_handles);
202 return TPM_RC_SUCCESS;
203#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800204#if IS_CC_ENABLED(CreatePrimary)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700205 case TPM_CC_CreatePrimary:
206 result = TPMI_RH_HIERARCHY_Unmarshal(
207 (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles],
208 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
209 if (result != TPM_RC_SUCCESS) {
210 return result;
211 }
212 ++(*num_request_handles);
213 return TPM_RC_SUCCESS;
214#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800215#if IS_CC_ENABLED(DictionaryAttackLockReset)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700216 case TPM_CC_DictionaryAttackLockReset:
217 result = TPMI_RH_LOCKOUT_Unmarshal(
218 (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles],
219 request_handle_buffer_start, request_buffer_remaining_size);
220 if (result != TPM_RC_SUCCESS) {
221 return result;
222 }
223 ++(*num_request_handles);
224 return TPM_RC_SUCCESS;
225#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800226#if IS_CC_ENABLED(DictionaryAttackParameters)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700227 case TPM_CC_DictionaryAttackParameters:
228 result = TPMI_RH_LOCKOUT_Unmarshal(
229 (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles],
230 request_handle_buffer_start, request_buffer_remaining_size);
231 if (result != TPM_RC_SUCCESS) {
232 return result;
233 }
234 ++(*num_request_handles);
235 return TPM_RC_SUCCESS;
236#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800237#if IS_CC_ENABLED(Duplicate)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700238 case TPM_CC_Duplicate:
239 result = TPMI_DH_OBJECT_Unmarshal(
240 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
241 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
242 if (result != TPM_RC_SUCCESS) {
243 return result;
244 }
245 ++(*num_request_handles);
246 result = TPMI_DH_OBJECT_Unmarshal(
247 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
248 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
249 if (result != TPM_RC_SUCCESS) {
250 return result;
251 }
252 ++(*num_request_handles);
253 return TPM_RC_SUCCESS;
254#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800255#if IS_CC_ENABLED(ECC_Parameters)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700256 case TPM_CC_ECC_Parameters:
257 return TPM_RC_SUCCESS;
258#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800259#if IS_CC_ENABLED(ECDH_KeyGen)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700260 case TPM_CC_ECDH_KeyGen:
261 result = TPMI_DH_OBJECT_Unmarshal(
262 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
263 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
264 if (result != TPM_RC_SUCCESS) {
265 return result;
266 }
267 ++(*num_request_handles);
268 return TPM_RC_SUCCESS;
269#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800270#if IS_CC_ENABLED(ECDH_ZGen)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700271 case TPM_CC_ECDH_ZGen:
272 result = TPMI_DH_OBJECT_Unmarshal(
273 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
274 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
275 if (result != TPM_RC_SUCCESS) {
276 return result;
277 }
278 ++(*num_request_handles);
279 return TPM_RC_SUCCESS;
280#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800281#if IS_CC_ENABLED(EC_Ephemeral)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700282 case TPM_CC_EC_Ephemeral:
283 return TPM_RC_SUCCESS;
284#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800285#if IS_CC_ENABLED(EncryptDecrypt)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700286 case TPM_CC_EncryptDecrypt:
287 result = TPMI_DH_OBJECT_Unmarshal(
288 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
289 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
290 if (result != TPM_RC_SUCCESS) {
291 return result;
292 }
293 ++(*num_request_handles);
294 return TPM_RC_SUCCESS;
295#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800296#if IS_CC_ENABLED(EventSequenceComplete)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700297 case TPM_CC_EventSequenceComplete:
298 result = TPMI_DH_PCR_Unmarshal(
299 (TPMI_DH_PCR*)&request_handles[*num_request_handles],
300 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
301 if (result != TPM_RC_SUCCESS) {
302 return result;
303 }
304 ++(*num_request_handles);
305 result = TPMI_DH_OBJECT_Unmarshal(
306 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
307 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
308 if (result != TPM_RC_SUCCESS) {
309 return result;
310 }
311 ++(*num_request_handles);
312 return TPM_RC_SUCCESS;
313#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800314#if IS_CC_ENABLED(EvictControl)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700315 case TPM_CC_EvictControl:
316 result = TPMI_RH_PROVISION_Unmarshal(
317 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
318 request_handle_buffer_start, request_buffer_remaining_size);
319 if (result != TPM_RC_SUCCESS) {
320 return result;
321 }
322 ++(*num_request_handles);
323 result = TPMI_DH_OBJECT_Unmarshal(
324 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
325 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
326 if (result != TPM_RC_SUCCESS) {
327 return result;
328 }
329 ++(*num_request_handles);
330 return TPM_RC_SUCCESS;
331#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800332#if IS_CC_ENABLED(FieldUpgradeData)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700333 case TPM_CC_FieldUpgradeData:
334 return TPM_RC_SUCCESS;
335#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800336#if IS_CC_ENABLED(FieldUpgradeStart)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700337 case TPM_CC_FieldUpgradeStart:
338 result = TPMI_RH_PLATFORM_Unmarshal(
339 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
340 request_handle_buffer_start, request_buffer_remaining_size);
341 if (result != TPM_RC_SUCCESS) {
342 return result;
343 }
344 ++(*num_request_handles);
345 result = TPMI_DH_OBJECT_Unmarshal(
346 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
347 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
348 if (result != TPM_RC_SUCCESS) {
349 return result;
350 }
351 ++(*num_request_handles);
352 return TPM_RC_SUCCESS;
353#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800354#if IS_CC_ENABLED(FirmwareRead)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700355 case TPM_CC_FirmwareRead:
356 return TPM_RC_SUCCESS;
357#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800358#if IS_CC_ENABLED(FlushContext)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700359 case TPM_CC_FlushContext:
360 return TPM_RC_SUCCESS;
361#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800362#if IS_CC_ENABLED(GetCapability)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700363 case TPM_CC_GetCapability:
364 return TPM_RC_SUCCESS;
365#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800366#if IS_CC_ENABLED(GetCommandAuditDigest)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700367 case TPM_CC_GetCommandAuditDigest:
368 result = TPMI_RH_ENDORSEMENT_Unmarshal(
369 (TPMI_RH_ENDORSEMENT*)&request_handles[*num_request_handles],
370 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
371 if (result != TPM_RC_SUCCESS) {
372 return result;
373 }
374 ++(*num_request_handles);
375 result = TPMI_DH_OBJECT_Unmarshal(
376 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
377 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
378 if (result != TPM_RC_SUCCESS) {
379 return result;
380 }
381 ++(*num_request_handles);
382 return TPM_RC_SUCCESS;
383#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800384#if IS_CC_ENABLED(GetRandom)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700385 case TPM_CC_GetRandom:
386 return TPM_RC_SUCCESS;
387#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800388#if IS_CC_ENABLED(GetSessionAuditDigest)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700389 case TPM_CC_GetSessionAuditDigest:
390 result = TPMI_RH_ENDORSEMENT_Unmarshal(
391 (TPMI_RH_ENDORSEMENT*)&request_handles[*num_request_handles],
392 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
393 if (result != TPM_RC_SUCCESS) {
394 return result;
395 }
396 ++(*num_request_handles);
397 result = TPMI_DH_OBJECT_Unmarshal(
398 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
399 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
400 if (result != TPM_RC_SUCCESS) {
401 return result;
402 }
403 ++(*num_request_handles);
404 result = TPMI_SH_HMAC_Unmarshal(
405 (TPMI_SH_HMAC*)&request_handles[*num_request_handles],
406 request_handle_buffer_start, request_buffer_remaining_size);
407 if (result != TPM_RC_SUCCESS) {
408 return result;
409 }
410 ++(*num_request_handles);
411 return TPM_RC_SUCCESS;
412#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800413#if IS_CC_ENABLED(GetTestResult)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700414 case TPM_CC_GetTestResult:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700415 return TPM_RC_SUCCESS;
416#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800417#if IS_CC_ENABLED(GetTime)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700418 case TPM_CC_GetTime:
419 result = TPMI_RH_ENDORSEMENT_Unmarshal(
420 (TPMI_RH_ENDORSEMENT*)&request_handles[*num_request_handles],
421 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
422 if (result != TPM_RC_SUCCESS) {
423 return result;
424 }
425 ++(*num_request_handles);
426 result = TPMI_DH_OBJECT_Unmarshal(
427 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
428 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
429 if (result != TPM_RC_SUCCESS) {
430 return result;
431 }
432 ++(*num_request_handles);
433 return TPM_RC_SUCCESS;
434#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800435#if IS_CC_ENABLED(HMAC)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700436 case TPM_CC_HMAC:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700437 result = TPMI_DH_OBJECT_Unmarshal(
438 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
439 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
440 if (result != TPM_RC_SUCCESS) {
441 return result;
442 }
443 ++(*num_request_handles);
444 return TPM_RC_SUCCESS;
445#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800446#if IS_CC_ENABLED(HMAC_Start)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700447 case TPM_CC_HMAC_Start:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700448 result = TPMI_DH_OBJECT_Unmarshal(
449 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
450 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
451 if (result != TPM_RC_SUCCESS) {
452 return result;
453 }
454 ++(*num_request_handles);
455 return TPM_RC_SUCCESS;
456#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800457#if IS_CC_ENABLED(Hash)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700458 case TPM_CC_Hash:
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700459 return TPM_RC_SUCCESS;
460#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800461#if IS_CC_ENABLED(HashSequenceStart)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700462 case TPM_CC_HashSequenceStart:
463 return TPM_RC_SUCCESS;
464#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800465#if IS_CC_ENABLED(HierarchyChangeAuth)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700466 case TPM_CC_HierarchyChangeAuth:
467 result = TPMI_RH_HIERARCHY_AUTH_Unmarshal(
468 (TPMI_RH_HIERARCHY_AUTH*)&request_handles[*num_request_handles],
469 request_handle_buffer_start, request_buffer_remaining_size);
470 if (result != TPM_RC_SUCCESS) {
471 return result;
472 }
473 ++(*num_request_handles);
474 return TPM_RC_SUCCESS;
475#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800476#if IS_CC_ENABLED(HierarchyControl)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700477 case TPM_CC_HierarchyControl:
478 result = TPMI_RH_HIERARCHY_Unmarshal(
479 (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles],
480 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
481 if (result != TPM_RC_SUCCESS) {
482 return result;
483 }
484 ++(*num_request_handles);
485 return TPM_RC_SUCCESS;
486#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800487#if IS_CC_ENABLED(Import)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700488 case TPM_CC_Import:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700489 result = TPMI_DH_OBJECT_Unmarshal(
490 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
491 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
492 if (result != TPM_RC_SUCCESS) {
493 return result;
494 }
495 ++(*num_request_handles);
496 return TPM_RC_SUCCESS;
497#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800498#if IS_CC_ENABLED(IncrementalSelfTest)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700499 case TPM_CC_IncrementalSelfTest:
500 return TPM_RC_SUCCESS;
501#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800502#if IS_CC_ENABLED(Load)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700503 case TPM_CC_Load:
504 result = TPMI_DH_OBJECT_Unmarshal(
505 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
506 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
507 if (result != TPM_RC_SUCCESS) {
508 return result;
509 }
510 ++(*num_request_handles);
511 return TPM_RC_SUCCESS;
512#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800513#if IS_CC_ENABLED(LoadExternal)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700514 case TPM_CC_LoadExternal:
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700515 return TPM_RC_SUCCESS;
516#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800517#if IS_CC_ENABLED(MakeCredential)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700518 case TPM_CC_MakeCredential:
519 result = TPMI_DH_OBJECT_Unmarshal(
520 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
521 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
522 if (result != TPM_RC_SUCCESS) {
523 return result;
524 }
525 ++(*num_request_handles);
526 return TPM_RC_SUCCESS;
527#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800528#if IS_CC_ENABLED(NV_Certify)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700529 case TPM_CC_NV_Certify:
530 result = TPMI_DH_OBJECT_Unmarshal(
531 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
532 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
533 if (result != TPM_RC_SUCCESS) {
534 return result;
535 }
536 ++(*num_request_handles);
537 result = TPMI_RH_NV_AUTH_Unmarshal(
538 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
539 request_handle_buffer_start, request_buffer_remaining_size);
540 if (result != TPM_RC_SUCCESS) {
541 return result;
542 }
543 ++(*num_request_handles);
544 result = TPMI_RH_NV_INDEX_Unmarshal(
545 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
546 request_handle_buffer_start, request_buffer_remaining_size);
547 if (result != TPM_RC_SUCCESS) {
548 return result;
549 }
550 ++(*num_request_handles);
551 return TPM_RC_SUCCESS;
552#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800553#if IS_CC_ENABLED(NV_ChangeAuth)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700554 case TPM_CC_NV_ChangeAuth:
555 result = TPMI_RH_NV_INDEX_Unmarshal(
556 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
557 request_handle_buffer_start, request_buffer_remaining_size);
558 if (result != TPM_RC_SUCCESS) {
559 return result;
560 }
561 ++(*num_request_handles);
562 return TPM_RC_SUCCESS;
563#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800564#if IS_CC_ENABLED(NV_DefineSpace)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700565 case TPM_CC_NV_DefineSpace:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700566 result = TPMI_RH_PROVISION_Unmarshal(
567 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
568 request_handle_buffer_start, request_buffer_remaining_size);
569 if (result != TPM_RC_SUCCESS) {
570 return result;
571 }
572 ++(*num_request_handles);
573 return TPM_RC_SUCCESS;
574#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800575#if IS_CC_ENABLED(NV_Extend)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700576 case TPM_CC_NV_Extend:
577 result = TPMI_RH_NV_AUTH_Unmarshal(
578 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
579 request_handle_buffer_start, request_buffer_remaining_size);
580 if (result != TPM_RC_SUCCESS) {
581 return result;
582 }
583 ++(*num_request_handles);
584 result = TPMI_RH_NV_INDEX_Unmarshal(
585 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
586 request_handle_buffer_start, request_buffer_remaining_size);
587 if (result != TPM_RC_SUCCESS) {
588 return result;
589 }
590 ++(*num_request_handles);
591 return TPM_RC_SUCCESS;
592#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800593#if IS_CC_ENABLED(NV_GlobalWriteLock)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700594 case TPM_CC_NV_GlobalWriteLock:
595 result = TPMI_RH_PROVISION_Unmarshal(
596 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
597 request_handle_buffer_start, request_buffer_remaining_size);
598 if (result != TPM_RC_SUCCESS) {
599 return result;
600 }
601 ++(*num_request_handles);
602 return TPM_RC_SUCCESS;
603#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800604#if IS_CC_ENABLED(NV_Increment)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700605 case TPM_CC_NV_Increment:
606 result = TPMI_RH_NV_AUTH_Unmarshal(
607 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
608 request_handle_buffer_start, request_buffer_remaining_size);
609 if (result != TPM_RC_SUCCESS) {
610 return result;
611 }
612 ++(*num_request_handles);
613 result = TPMI_RH_NV_INDEX_Unmarshal(
614 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
615 request_handle_buffer_start, request_buffer_remaining_size);
616 if (result != TPM_RC_SUCCESS) {
617 return result;
618 }
619 ++(*num_request_handles);
620 return TPM_RC_SUCCESS;
621#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800622#if IS_CC_ENABLED(NV_Read)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700623 case TPM_CC_NV_Read:
624 result = TPMI_RH_NV_AUTH_Unmarshal(
625 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
626 request_handle_buffer_start, request_buffer_remaining_size);
627 if (result != TPM_RC_SUCCESS) {
628 return result;
629 }
630 ++(*num_request_handles);
631 result = TPMI_RH_NV_INDEX_Unmarshal(
632 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
633 request_handle_buffer_start, request_buffer_remaining_size);
634 if (result != TPM_RC_SUCCESS) {
635 return result;
636 }
637 ++(*num_request_handles);
638 return TPM_RC_SUCCESS;
639#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800640#if IS_CC_ENABLED(NV_ReadLock)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700641 case TPM_CC_NV_ReadLock:
642 result = TPMI_RH_NV_AUTH_Unmarshal(
643 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
644 request_handle_buffer_start, request_buffer_remaining_size);
645 if (result != TPM_RC_SUCCESS) {
646 return result;
647 }
648 ++(*num_request_handles);
649 result = TPMI_RH_NV_INDEX_Unmarshal(
650 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
651 request_handle_buffer_start, request_buffer_remaining_size);
652 if (result != TPM_RC_SUCCESS) {
653 return result;
654 }
655 ++(*num_request_handles);
656 return TPM_RC_SUCCESS;
657#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800658#if IS_CC_ENABLED(NV_ReadPublic)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700659 case TPM_CC_NV_ReadPublic:
660 result = TPMI_RH_NV_INDEX_Unmarshal(
661 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
662 request_handle_buffer_start, request_buffer_remaining_size);
663 if (result != TPM_RC_SUCCESS) {
664 return result;
665 }
666 ++(*num_request_handles);
667 return TPM_RC_SUCCESS;
668#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800669#if IS_CC_ENABLED(NV_SetBits)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700670 case TPM_CC_NV_SetBits:
671 result = TPMI_RH_NV_AUTH_Unmarshal(
672 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
673 request_handle_buffer_start, request_buffer_remaining_size);
674 if (result != TPM_RC_SUCCESS) {
675 return result;
676 }
677 ++(*num_request_handles);
678 result = TPMI_RH_NV_INDEX_Unmarshal(
679 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
680 request_handle_buffer_start, request_buffer_remaining_size);
681 if (result != TPM_RC_SUCCESS) {
682 return result;
683 }
684 ++(*num_request_handles);
685 return TPM_RC_SUCCESS;
686#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800687#if IS_CC_ENABLED(NV_UndefineSpace)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700688 case TPM_CC_NV_UndefineSpace:
689 result = TPMI_RH_PROVISION_Unmarshal(
690 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
691 request_handle_buffer_start, request_buffer_remaining_size);
692 if (result != TPM_RC_SUCCESS) {
693 return result;
694 }
695 ++(*num_request_handles);
696 result = TPMI_RH_NV_INDEX_Unmarshal(
697 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
698 request_handle_buffer_start, request_buffer_remaining_size);
699 if (result != TPM_RC_SUCCESS) {
700 return result;
701 }
702 ++(*num_request_handles);
703 return TPM_RC_SUCCESS;
704#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800705#if IS_CC_ENABLED(NV_UndefineSpaceSpecial)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700706 case TPM_CC_NV_UndefineSpaceSpecial:
707 result = TPMI_RH_NV_INDEX_Unmarshal(
708 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
709 request_handle_buffer_start, request_buffer_remaining_size);
710 if (result != TPM_RC_SUCCESS) {
711 return result;
712 }
713 ++(*num_request_handles);
714 result = TPMI_RH_PLATFORM_Unmarshal(
715 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
716 request_handle_buffer_start, request_buffer_remaining_size);
717 if (result != TPM_RC_SUCCESS) {
718 return result;
719 }
720 ++(*num_request_handles);
721 return TPM_RC_SUCCESS;
722#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800723#if IS_CC_ENABLED(NV_Write)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700724 case TPM_CC_NV_Write:
725 result = TPMI_RH_NV_AUTH_Unmarshal(
726 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
727 request_handle_buffer_start, request_buffer_remaining_size);
728 if (result != TPM_RC_SUCCESS) {
729 return result;
730 }
731 ++(*num_request_handles);
732 result = TPMI_RH_NV_INDEX_Unmarshal(
733 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
734 request_handle_buffer_start, request_buffer_remaining_size);
735 if (result != TPM_RC_SUCCESS) {
736 return result;
737 }
738 ++(*num_request_handles);
739 return TPM_RC_SUCCESS;
740#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800741#if IS_CC_ENABLED(NV_WriteLock)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700742 case TPM_CC_NV_WriteLock:
743 result = TPMI_RH_NV_AUTH_Unmarshal(
744 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
745 request_handle_buffer_start, request_buffer_remaining_size);
746 if (result != TPM_RC_SUCCESS) {
747 return result;
748 }
749 ++(*num_request_handles);
750 result = TPMI_RH_NV_INDEX_Unmarshal(
751 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
752 request_handle_buffer_start, request_buffer_remaining_size);
753 if (result != TPM_RC_SUCCESS) {
754 return result;
755 }
756 ++(*num_request_handles);
757 return TPM_RC_SUCCESS;
758#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800759#if IS_CC_ENABLED(ObjectChangeAuth)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700760 case TPM_CC_ObjectChangeAuth:
761 result = TPMI_DH_OBJECT_Unmarshal(
762 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
763 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
764 if (result != TPM_RC_SUCCESS) {
765 return result;
766 }
767 ++(*num_request_handles);
768 result = TPMI_DH_OBJECT_Unmarshal(
769 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
770 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
771 if (result != TPM_RC_SUCCESS) {
772 return result;
773 }
774 ++(*num_request_handles);
775 return TPM_RC_SUCCESS;
776#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800777#if IS_CC_ENABLED(PCR_Allocate)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700778 case TPM_CC_PCR_Allocate:
779 result = TPMI_RH_PLATFORM_Unmarshal(
780 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
781 request_handle_buffer_start, request_buffer_remaining_size);
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700782 if (result != TPM_RC_SUCCESS) {
783 return result;
784 }
785 ++(*num_request_handles);
786 return TPM_RC_SUCCESS;
787#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800788#if IS_CC_ENABLED(PCR_Event)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700789 case TPM_CC_PCR_Event:
790 result = TPMI_DH_PCR_Unmarshal(
791 (TPMI_DH_PCR*)&request_handles[*num_request_handles],
792 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
793 if (result != TPM_RC_SUCCESS) {
794 return result;
795 }
796 ++(*num_request_handles);
797 return TPM_RC_SUCCESS;
798#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800799#if IS_CC_ENABLED(PCR_Extend)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700800 case TPM_CC_PCR_Extend:
801 result = TPMI_DH_PCR_Unmarshal(
802 (TPMI_DH_PCR*)&request_handles[*num_request_handles],
803 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
804 if (result != TPM_RC_SUCCESS) {
805 return result;
806 }
807 ++(*num_request_handles);
808 return TPM_RC_SUCCESS;
809#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800810#if IS_CC_ENABLED(PCR_Read)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700811 case TPM_CC_PCR_Read:
812 return TPM_RC_SUCCESS;
813#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800814#if IS_CC_ENABLED(PCR_Reset)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700815 case TPM_CC_PCR_Reset:
816 result = TPMI_DH_PCR_Unmarshal(
817 (TPMI_DH_PCR*)&request_handles[*num_request_handles],
818 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700819 if (result != TPM_RC_SUCCESS) {
820 return result;
821 }
822 ++(*num_request_handles);
823 return TPM_RC_SUCCESS;
824#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800825#if IS_CC_ENABLED(PCR_SetAuthPolicy)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700826 case TPM_CC_PCR_SetAuthPolicy:
827 result = TPMI_RH_PLATFORM_Unmarshal(
828 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
829 request_handle_buffer_start, request_buffer_remaining_size);
830 if (result != TPM_RC_SUCCESS) {
831 return result;
832 }
833 ++(*num_request_handles);
834 result = TPMI_DH_PCR_Unmarshal(
835 (TPMI_DH_PCR*)&request_handles[*num_request_handles],
836 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
837 if (result != TPM_RC_SUCCESS) {
838 return result;
839 }
840 ++(*num_request_handles);
841 return TPM_RC_SUCCESS;
842#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800843#if IS_CC_ENABLED(PCR_SetAuthValue)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700844 case TPM_CC_PCR_SetAuthValue:
845 result = TPMI_DH_PCR_Unmarshal(
846 (TPMI_DH_PCR*)&request_handles[*num_request_handles],
847 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
848 if (result != TPM_RC_SUCCESS) {
849 return result;
850 }
851 ++(*num_request_handles);
852 return TPM_RC_SUCCESS;
853#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800854#if IS_CC_ENABLED(PP_Commands)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700855 case TPM_CC_PP_Commands:
856 result = TPMI_RH_PLATFORM_Unmarshal(
857 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
858 request_handle_buffer_start, request_buffer_remaining_size);
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700859 if (result != TPM_RC_SUCCESS) {
860 return result;
861 }
862 ++(*num_request_handles);
863 return TPM_RC_SUCCESS;
864#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800865#if IS_CC_ENABLED(PolicyAuthValue)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700866 case TPM_CC_PolicyAuthValue:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700867 result = TPMI_SH_POLICY_Unmarshal(
868 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
869 request_handle_buffer_start, request_buffer_remaining_size);
870 if (result != TPM_RC_SUCCESS) {
871 return result;
872 }
873 ++(*num_request_handles);
874 return TPM_RC_SUCCESS;
875#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800876#if IS_CC_ENABLED(PolicyAuthorize)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700877 case TPM_CC_PolicyAuthorize:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700878 result = TPMI_SH_POLICY_Unmarshal(
879 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
880 request_handle_buffer_start, request_buffer_remaining_size);
881 if (result != TPM_RC_SUCCESS) {
882 return result;
883 }
884 ++(*num_request_handles);
885 return TPM_RC_SUCCESS;
886#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800887#if IS_CC_ENABLED(PolicyCommandCode)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700888 case TPM_CC_PolicyCommandCode:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700889 result = TPMI_SH_POLICY_Unmarshal(
890 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
891 request_handle_buffer_start, request_buffer_remaining_size);
892 if (result != TPM_RC_SUCCESS) {
893 return result;
894 }
895 ++(*num_request_handles);
896 return TPM_RC_SUCCESS;
897#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800898#if IS_CC_ENABLED(PolicyCounterTimer)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700899 case TPM_CC_PolicyCounterTimer:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700900 result = TPMI_SH_POLICY_Unmarshal(
901 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
902 request_handle_buffer_start, request_buffer_remaining_size);
903 if (result != TPM_RC_SUCCESS) {
904 return result;
905 }
906 ++(*num_request_handles);
907 return TPM_RC_SUCCESS;
908#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800909#if IS_CC_ENABLED(PolicyCpHash)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700910 case TPM_CC_PolicyCpHash:
911 result = TPMI_SH_POLICY_Unmarshal(
912 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
913 request_handle_buffer_start, request_buffer_remaining_size);
914 if (result != TPM_RC_SUCCESS) {
915 return result;
916 }
917 ++(*num_request_handles);
918 return TPM_RC_SUCCESS;
919#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800920#if IS_CC_ENABLED(PolicyDuplicationSelect)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700921 case TPM_CC_PolicyDuplicationSelect:
922 result = TPMI_SH_POLICY_Unmarshal(
923 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
924 request_handle_buffer_start, request_buffer_remaining_size);
925 if (result != TPM_RC_SUCCESS) {
926 return result;
927 }
928 ++(*num_request_handles);
929 return TPM_RC_SUCCESS;
930#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800931#if IS_CC_ENABLED(PolicyGetDigest)
Vadim Bendebury764e99b2015-09-15 11:29:08 -0700932 case TPM_CC_PolicyGetDigest:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700933 result = TPMI_SH_POLICY_Unmarshal(
934 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
935 request_handle_buffer_start, request_buffer_remaining_size);
936 if (result != TPM_RC_SUCCESS) {
937 return result;
938 }
939 ++(*num_request_handles);
940 return TPM_RC_SUCCESS;
941#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800942#if IS_CC_ENABLED(PolicyLocality)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700943 case TPM_CC_PolicyLocality:
944 result = TPMI_SH_POLICY_Unmarshal(
945 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
946 request_handle_buffer_start, request_buffer_remaining_size);
947 if (result != TPM_RC_SUCCESS) {
948 return result;
949 }
950 ++(*num_request_handles);
951 return TPM_RC_SUCCESS;
952#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800953#if IS_CC_ENABLED(PolicyNV)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700954 case TPM_CC_PolicyNV:
955 result = TPMI_RH_NV_AUTH_Unmarshal(
956 (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
957 request_handle_buffer_start, request_buffer_remaining_size);
958 if (result != TPM_RC_SUCCESS) {
959 return result;
960 }
961 ++(*num_request_handles);
962 result = TPMI_RH_NV_INDEX_Unmarshal(
963 (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
964 request_handle_buffer_start, request_buffer_remaining_size);
965 if (result != TPM_RC_SUCCESS) {
966 return result;
967 }
968 ++(*num_request_handles);
969 result = TPMI_SH_POLICY_Unmarshal(
970 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
971 request_handle_buffer_start, request_buffer_remaining_size);
972 if (result != TPM_RC_SUCCESS) {
973 return result;
974 }
975 ++(*num_request_handles);
976 return TPM_RC_SUCCESS;
977#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800978#if IS_CC_ENABLED(PolicyNameHash)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700979 case TPM_CC_PolicyNameHash:
980 result = TPMI_SH_POLICY_Unmarshal(
981 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
982 request_handle_buffer_start, request_buffer_remaining_size);
983 if (result != TPM_RC_SUCCESS) {
984 return result;
985 }
986 ++(*num_request_handles);
987 return TPM_RC_SUCCESS;
988#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -0800989#if IS_CC_ENABLED(PolicyNvWritten)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -0700990 case TPM_CC_PolicyNvWritten:
991 result = TPMI_SH_POLICY_Unmarshal(
992 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
993 request_handle_buffer_start, request_buffer_remaining_size);
994 if (result != TPM_RC_SUCCESS) {
995 return result;
996 }
997 ++(*num_request_handles);
998 return TPM_RC_SUCCESS;
999#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001000#if IS_CC_ENABLED(PolicyOR)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001001 case TPM_CC_PolicyOR:
1002 result = TPMI_SH_POLICY_Unmarshal(
1003 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1004 request_handle_buffer_start, request_buffer_remaining_size);
1005 if (result != TPM_RC_SUCCESS) {
1006 return result;
1007 }
1008 ++(*num_request_handles);
1009 return TPM_RC_SUCCESS;
1010#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001011#if IS_CC_ENABLED(PolicyPCR)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001012 case TPM_CC_PolicyPCR:
1013 result = TPMI_SH_POLICY_Unmarshal(
1014 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1015 request_handle_buffer_start, request_buffer_remaining_size);
1016 if (result != TPM_RC_SUCCESS) {
1017 return result;
1018 }
1019 ++(*num_request_handles);
1020 return TPM_RC_SUCCESS;
1021#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001022#if IS_CC_ENABLED(PolicyPassword)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001023 case TPM_CC_PolicyPassword:
1024 result = TPMI_SH_POLICY_Unmarshal(
1025 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1026 request_handle_buffer_start, request_buffer_remaining_size);
1027 if (result != TPM_RC_SUCCESS) {
1028 return result;
1029 }
1030 ++(*num_request_handles);
1031 return TPM_RC_SUCCESS;
1032#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001033#if IS_CC_ENABLED(PolicyPhysicalPresence)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001034 case TPM_CC_PolicyPhysicalPresence:
1035 result = TPMI_SH_POLICY_Unmarshal(
1036 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1037 request_handle_buffer_start, request_buffer_remaining_size);
1038 if (result != TPM_RC_SUCCESS) {
1039 return result;
1040 }
1041 ++(*num_request_handles);
1042 return TPM_RC_SUCCESS;
1043#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001044#if IS_CC_ENABLED(PolicyRestart)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001045 case TPM_CC_PolicyRestart:
1046 result = TPMI_SH_POLICY_Unmarshal(
1047 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1048 request_handle_buffer_start, request_buffer_remaining_size);
1049 if (result != TPM_RC_SUCCESS) {
1050 return result;
1051 }
1052 ++(*num_request_handles);
1053 return TPM_RC_SUCCESS;
1054#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001055#if IS_CC_ENABLED(PolicySecret)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001056 case TPM_CC_PolicySecret:
1057 result = TPMI_DH_ENTITY_Unmarshal(
1058 (TPMI_DH_ENTITY*)&request_handles[*num_request_handles],
1059 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1060 if (result != TPM_RC_SUCCESS) {
1061 return result;
1062 }
1063 ++(*num_request_handles);
1064 result = TPMI_SH_POLICY_Unmarshal(
1065 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1066 request_handle_buffer_start, request_buffer_remaining_size);
1067 if (result != TPM_RC_SUCCESS) {
1068 return result;
1069 }
1070 ++(*num_request_handles);
1071 return TPM_RC_SUCCESS;
1072#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001073#if IS_CC_ENABLED(PolicySigned)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001074 case TPM_CC_PolicySigned:
1075 result = TPMI_DH_OBJECT_Unmarshal(
1076 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1077 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1078 if (result != TPM_RC_SUCCESS) {
1079 return result;
1080 }
1081 ++(*num_request_handles);
1082 result = TPMI_SH_POLICY_Unmarshal(
1083 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1084 request_handle_buffer_start, request_buffer_remaining_size);
1085 if (result != TPM_RC_SUCCESS) {
1086 return result;
1087 }
1088 ++(*num_request_handles);
1089 return TPM_RC_SUCCESS;
1090#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001091#if IS_CC_ENABLED(PolicyTicket)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001092 case TPM_CC_PolicyTicket:
1093 result = TPMI_SH_POLICY_Unmarshal(
1094 (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1095 request_handle_buffer_start, request_buffer_remaining_size);
1096 if (result != TPM_RC_SUCCESS) {
1097 return result;
1098 }
1099 ++(*num_request_handles);
1100 return TPM_RC_SUCCESS;
1101#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001102#if IS_CC_ENABLED(Quote)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001103 case TPM_CC_Quote:
1104 result = TPMI_DH_OBJECT_Unmarshal(
1105 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
Vadim Bendebury0232bac2015-09-17 17:26:29 -07001106 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001107 if (result != TPM_RC_SUCCESS) {
1108 return result;
1109 }
1110 ++(*num_request_handles);
1111 return TPM_RC_SUCCESS;
1112#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001113#if IS_CC_ENABLED(RSA_Decrypt)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001114 case TPM_CC_RSA_Decrypt:
1115 result = TPMI_DH_OBJECT_Unmarshal(
1116 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1117 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1118 if (result != TPM_RC_SUCCESS) {
1119 return result;
1120 }
1121 ++(*num_request_handles);
1122 return TPM_RC_SUCCESS;
1123#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001124#if IS_CC_ENABLED(RSA_Encrypt)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001125 case TPM_CC_RSA_Encrypt:
1126 result = TPMI_DH_OBJECT_Unmarshal(
1127 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1128 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1129 if (result != TPM_RC_SUCCESS) {
1130 return result;
1131 }
1132 ++(*num_request_handles);
1133 return TPM_RC_SUCCESS;
1134#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001135#if IS_CC_ENABLED(ReadClock)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001136 case TPM_CC_ReadClock:
1137 return TPM_RC_SUCCESS;
1138#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001139#if IS_CC_ENABLED(ReadPublic)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001140 case TPM_CC_ReadPublic:
1141 result = TPMI_DH_OBJECT_Unmarshal(
1142 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1143 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1144 if (result != TPM_RC_SUCCESS) {
1145 return result;
1146 }
1147 ++(*num_request_handles);
1148 return TPM_RC_SUCCESS;
1149#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001150#if IS_CC_ENABLED(Rewrap)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001151 case TPM_CC_Rewrap:
1152 result = TPMI_DH_OBJECT_Unmarshal(
1153 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1154 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1155 if (result != TPM_RC_SUCCESS) {
1156 return result;
1157 }
1158 ++(*num_request_handles);
1159 result = TPMI_DH_OBJECT_Unmarshal(
1160 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1161 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1162 if (result != TPM_RC_SUCCESS) {
1163 return result;
1164 }
1165 ++(*num_request_handles);
1166 return TPM_RC_SUCCESS;
1167#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001168#if IS_CC_ENABLED(SelfTest)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001169 case TPM_CC_SelfTest:
1170 return TPM_RC_SUCCESS;
1171#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001172#if IS_CC_ENABLED(SequenceComplete)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001173 case TPM_CC_SequenceComplete:
1174 result = TPMI_DH_OBJECT_Unmarshal(
1175 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1176 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1177 if (result != TPM_RC_SUCCESS) {
1178 return result;
1179 }
1180 ++(*num_request_handles);
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001181 return TPM_RC_SUCCESS;
1182#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001183#if IS_CC_ENABLED(SequenceUpdate)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001184 case TPM_CC_SequenceUpdate:
1185 result = TPMI_DH_OBJECT_Unmarshal(
1186 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001187 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1188 if (result != TPM_RC_SUCCESS) {
1189 return result;
1190 }
1191 ++(*num_request_handles);
1192 return TPM_RC_SUCCESS;
1193#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001194#if IS_CC_ENABLED(SetAlgorithmSet)
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001195 case TPM_CC_SetAlgorithmSet:
1196 result = TPMI_RH_PLATFORM_Unmarshal(
1197 (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
1198 request_handle_buffer_start, request_buffer_remaining_size);
1199 if (result != TPM_RC_SUCCESS) {
1200 return result;
1201 }
1202 ++(*num_request_handles);
1203 return TPM_RC_SUCCESS;
1204#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001205#if IS_CC_ENABLED(SetCommandCodeAuditStatus)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001206 case TPM_CC_SetCommandCodeAuditStatus:
1207 result = TPMI_RH_PROVISION_Unmarshal(
1208 (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001209 request_handle_buffer_start, request_buffer_remaining_size);
1210 if (result != TPM_RC_SUCCESS) {
1211 return result;
1212 }
1213 ++(*num_request_handles);
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001214 return TPM_RC_SUCCESS;
1215#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001216#if IS_CC_ENABLED(SetPrimaryPolicy)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001217 case TPM_CC_SetPrimaryPolicy:
Vadim Bendebury0232bac2015-09-17 17:26:29 -07001218 result = TPMI_RH_HIERARCHY_AUTH_Unmarshal(
1219 (TPMI_RH_HIERARCHY_AUTH*)&request_handles[*num_request_handles],
1220 request_handle_buffer_start, request_buffer_remaining_size);
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001221 if (result != TPM_RC_SUCCESS) {
1222 return result;
1223 }
1224 ++(*num_request_handles);
1225 return TPM_RC_SUCCESS;
1226#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001227#if IS_CC_ENABLED(Shutdown)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001228 case TPM_CC_Shutdown:
1229 return TPM_RC_SUCCESS;
1230#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001231#if IS_CC_ENABLED(Sign)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001232 case TPM_CC_Sign:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001233 result = TPMI_DH_OBJECT_Unmarshal(
1234 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1235 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1236 if (result != TPM_RC_SUCCESS) {
1237 return result;
1238 }
1239 ++(*num_request_handles);
1240 return TPM_RC_SUCCESS;
1241#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001242#if IS_CC_ENABLED(StartAuthSession)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001243 case TPM_CC_StartAuthSession:
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001244 result = TPMI_DH_OBJECT_Unmarshal(
1245 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1246 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1247 if (result != TPM_RC_SUCCESS) {
1248 return result;
1249 }
1250 ++(*num_request_handles);
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001251 result = TPMI_DH_ENTITY_Unmarshal(
1252 (TPMI_DH_ENTITY*)&request_handles[*num_request_handles],
1253 request_handle_buffer_start, request_buffer_remaining_size, TRUE);
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001254 if (result != TPM_RC_SUCCESS) {
1255 return result;
1256 }
1257 ++(*num_request_handles);
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001258 return TPM_RC_SUCCESS;
1259#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001260#if IS_CC_ENABLED(Startup)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001261 case TPM_CC_Startup:
1262 return TPM_RC_SUCCESS;
1263#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001264#if IS_CC_ENABLED(StirRandom)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001265 case TPM_CC_StirRandom:
1266 return TPM_RC_SUCCESS;
1267#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001268#if IS_CC_ENABLED(TestParms)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001269 case TPM_CC_TestParms:
1270 return TPM_RC_SUCCESS;
1271#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001272#if IS_CC_ENABLED(Unseal)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001273 case TPM_CC_Unseal:
1274 result = TPMI_DH_OBJECT_Unmarshal(
1275 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1276 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1277 if (result != TPM_RC_SUCCESS) {
1278 return result;
1279 }
1280 ++(*num_request_handles);
1281 return TPM_RC_SUCCESS;
1282#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001283#if IS_CC_ENABLED(VerifySignature)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001284 case TPM_CC_VerifySignature:
1285 result = TPMI_DH_OBJECT_Unmarshal(
1286 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1287 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1288 if (result != TPM_RC_SUCCESS) {
1289 return result;
1290 }
1291 ++(*num_request_handles);
1292 return TPM_RC_SUCCESS;
1293#endif
Vadim Bendeburyc3730f62019-01-15 11:59:05 -08001294#if IS_CC_ENABLED(ZGen_2Phase)
Vadim Bendebury764e99b2015-09-15 11:29:08 -07001295 case TPM_CC_ZGen_2Phase:
1296 result = TPMI_DH_OBJECT_Unmarshal(
1297 (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1298 request_handle_buffer_start, request_buffer_remaining_size, FALSE);
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -07001299 if (result != TPM_RC_SUCCESS) {
1300 return result;
1301 }
1302 ++(*num_request_handles);
1303 return TPM_RC_SUCCESS;
1304#endif
1305 default:
1306 return TPM_RC_COMMAND_CODE;
1307 }
1308}