Coverage Report

Created: 2025-07-11 06:15

/src/tpm2/HandleProcess.c
Line
Count
Source (jump to first uncovered line)
1
// 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
12
TPM_RC ParseHandleBuffer(TPM_CC command_code,
13
                         BYTE** request_handle_buffer_start,
14
                         INT32* request_buffer_remaining_size,
15
                         TPM_HANDLE request_handles[],
16
440
                         UINT32* num_request_handles) {
17
440
  TPM_RC result = TPM_RC_SUCCESS;
18
440
  *num_request_handles = 0;
19
20
440
  if (command_code & TPM_CCE_BIT_MASK) {
21
1
    switch (command_code) {
22
0
#if IS_CCE_ENABLED(PolicyFidoSigned)
23
1
    case TPM_CCE_PolicyFidoSigned:
24
1
      result = TPMI_DH_OBJECT_Unmarshal(
25
1
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
26
1
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
27
1
      if (result != TPM_RC_SUCCESS)
28
1
        return result;
29
30
0
      ++(*num_request_handles);
31
0
      result = TPMI_SH_POLICY_Unmarshal(
32
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
33
0
          request_handle_buffer_start, request_buffer_remaining_size);
34
0
      if (result != TPM_RC_SUCCESS)
35
0
        return result;
36
37
0
      ++(*num_request_handles);
38
0
      return TPM_RC_SUCCESS;
39
0
#endif
40
0
    default:
41
0
      break;
42
1
    }
43
0
    return TPM_RC_COMMAND_CODE;
44
1
  }
45
46
439
  switch (command_code) {
47
0
#if IS_CC_ENABLED(ActivateCredential)
48
0
    case TPM_CC_ActivateCredential:
49
0
      result = TPMI_DH_OBJECT_Unmarshal(
50
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
51
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
52
0
      if (result != TPM_RC_SUCCESS) {
53
0
        return result;
54
0
      }
55
0
      ++(*num_request_handles);
56
0
      result = TPMI_DH_OBJECT_Unmarshal(
57
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
58
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
59
0
      if (result != TPM_RC_SUCCESS) {
60
0
        return result;
61
0
      }
62
0
      ++(*num_request_handles);
63
0
      return TPM_RC_SUCCESS;
64
0
#endif
65
0
#if IS_CC_ENABLED(Certify)
66
0
    case TPM_CC_Certify:
67
0
      result = TPMI_DH_OBJECT_Unmarshal(
68
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
69
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
70
0
      if (result != TPM_RC_SUCCESS) {
71
0
        return result;
72
0
      }
73
0
      ++(*num_request_handles);
74
0
      result = TPMI_DH_OBJECT_Unmarshal(
75
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
76
0
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
77
0
      if (result != TPM_RC_SUCCESS) {
78
0
        return result;
79
0
      }
80
0
      ++(*num_request_handles);
81
0
      return TPM_RC_SUCCESS;
82
0
#endif
83
0
#if IS_CC_ENABLED(CertifyCreation)
84
0
    case TPM_CC_CertifyCreation:
85
0
      result = TPMI_DH_OBJECT_Unmarshal(
86
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
87
0
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
88
0
      if (result != TPM_RC_SUCCESS) {
89
0
        return result;
90
0
      }
91
0
      ++(*num_request_handles);
92
0
      result = TPMI_DH_OBJECT_Unmarshal(
93
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
94
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
95
0
      if (result != TPM_RC_SUCCESS) {
96
0
        return result;
97
0
      }
98
0
      ++(*num_request_handles);
99
0
      return TPM_RC_SUCCESS;
100
0
#endif
101
#if IS_CC_ENABLED(ChangeEPS)
102
    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
112
#if IS_CC_ENABLED(ChangePPS)
113
    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
123
0
#if IS_CC_ENABLED(Clear)
124
3
    case TPM_CC_Clear:
125
3
      result = TPMI_RH_CLEAR_Unmarshal(
126
3
          (TPMI_RH_CLEAR*)&request_handles[*num_request_handles],
127
3
          request_handle_buffer_start, request_buffer_remaining_size);
128
3
      if (result != TPM_RC_SUCCESS) {
129
0
        return result;
130
0
      }
131
3
      ++(*num_request_handles);
132
3
      return TPM_RC_SUCCESS;
133
0
#endif
134
#if IS_CC_ENABLED(ClearControl)
135
    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
145
#if IS_CC_ENABLED(ClockRateAdjust)
146
    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
156
#if IS_CC_ENABLED(ClockSet)
157
    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
167
0
#if IS_CC_ENABLED(Commit)
168
0
    case TPM_CC_Commit:
169
0
      result = TPMI_DH_OBJECT_Unmarshal(
170
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
171
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
172
0
      if (result != TPM_RC_SUCCESS) {
173
0
        return result;
174
0
      }
175
0
      ++(*num_request_handles);
176
0
      return TPM_RC_SUCCESS;
177
0
#endif
178
0
#if IS_CC_ENABLED(ContextLoad)
179
8
    case TPM_CC_ContextLoad:
180
8
      return TPM_RC_SUCCESS;
181
0
#endif
182
0
#if IS_CC_ENABLED(ContextSave)
183
0
    case TPM_CC_ContextSave:
184
0
      result = TPMI_DH_CONTEXT_Unmarshal(
185
0
          (TPMI_DH_CONTEXT*)&request_handles[*num_request_handles],
186
0
          request_handle_buffer_start, request_buffer_remaining_size);
187
0
      if (result != TPM_RC_SUCCESS) {
188
0
        return result;
189
0
      }
190
0
      ++(*num_request_handles);
191
0
      return TPM_RC_SUCCESS;
192
0
#endif
193
0
#if IS_CC_ENABLED(Create)
194
0
    case TPM_CC_Create:
195
0
      result = TPMI_DH_OBJECT_Unmarshal(
196
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
197
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
198
0
      if (result != TPM_RC_SUCCESS) {
199
0
        return result;
200
0
      }
201
0
      ++(*num_request_handles);
202
0
      return TPM_RC_SUCCESS;
203
0
#endif
204
0
#if IS_CC_ENABLED(CreatePrimary)
205
18
    case TPM_CC_CreatePrimary:
206
18
      result = TPMI_RH_HIERARCHY_Unmarshal(
207
18
          (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles],
208
18
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
209
18
      if (result != TPM_RC_SUCCESS) {
210
2
        return result;
211
2
      }
212
16
      ++(*num_request_handles);
213
16
      return TPM_RC_SUCCESS;
214
0
#endif
215
0
#if IS_CC_ENABLED(DictionaryAttackLockReset)
216
0
    case TPM_CC_DictionaryAttackLockReset:
217
0
      result = TPMI_RH_LOCKOUT_Unmarshal(
218
0
          (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles],
219
0
          request_handle_buffer_start, request_buffer_remaining_size);
220
0
      if (result != TPM_RC_SUCCESS) {
221
0
        return result;
222
0
      }
223
0
      ++(*num_request_handles);
224
0
      return TPM_RC_SUCCESS;
225
0
#endif
226
0
#if IS_CC_ENABLED(DictionaryAttackParameters)
227
0
    case TPM_CC_DictionaryAttackParameters:
228
0
      result = TPMI_RH_LOCKOUT_Unmarshal(
229
0
          (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles],
230
0
          request_handle_buffer_start, request_buffer_remaining_size);
231
0
      if (result != TPM_RC_SUCCESS) {
232
0
        return result;
233
0
      }
234
0
      ++(*num_request_handles);
235
0
      return TPM_RC_SUCCESS;
236
0
#endif
237
0
#if IS_CC_ENABLED(Duplicate)
238
0
    case TPM_CC_Duplicate:
239
0
      result = TPMI_DH_OBJECT_Unmarshal(
240
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
241
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
242
0
      if (result != TPM_RC_SUCCESS) {
243
0
        return result;
244
0
      }
245
0
      ++(*num_request_handles);
246
0
      result = TPMI_DH_OBJECT_Unmarshal(
247
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
248
0
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
249
0
      if (result != TPM_RC_SUCCESS) {
250
0
        return result;
251
0
      }
252
0
      ++(*num_request_handles);
253
0
      return TPM_RC_SUCCESS;
254
0
#endif
255
0
#if IS_CC_ENABLED(ECC_Parameters)
256
0
    case TPM_CC_ECC_Parameters:
257
0
      return TPM_RC_SUCCESS;
258
0
#endif
259
0
#if IS_CC_ENABLED(ECDH_KeyGen)
260
0
    case TPM_CC_ECDH_KeyGen:
261
0
      result = TPMI_DH_OBJECT_Unmarshal(
262
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
263
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
264
0
      if (result != TPM_RC_SUCCESS) {
265
0
        return result;
266
0
      }
267
0
      ++(*num_request_handles);
268
0
      return TPM_RC_SUCCESS;
269
0
#endif
270
0
#if IS_CC_ENABLED(ECDH_ZGen)
271
0
    case TPM_CC_ECDH_ZGen:
272
0
      result = TPMI_DH_OBJECT_Unmarshal(
273
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
274
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
275
0
      if (result != TPM_RC_SUCCESS) {
276
0
        return result;
277
0
      }
278
0
      ++(*num_request_handles);
279
0
      return TPM_RC_SUCCESS;
280
0
#endif
281
#if IS_CC_ENABLED(EC_Ephemeral)
282
    case TPM_CC_EC_Ephemeral:
283
      return TPM_RC_SUCCESS;
284
#endif
285
#if IS_CC_ENABLED(EncryptDecrypt)
286
    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
296
#if IS_CC_ENABLED(EventSequenceComplete)
297
    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
314
0
#if IS_CC_ENABLED(EvictControl)
315
0
    case TPM_CC_EvictControl:
316
0
      result = TPMI_RH_PROVISION_Unmarshal(
317
0
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
318
0
          request_handle_buffer_start, request_buffer_remaining_size);
319
0
      if (result != TPM_RC_SUCCESS) {
320
0
        return result;
321
0
      }
322
0
      ++(*num_request_handles);
323
0
      result = TPMI_DH_OBJECT_Unmarshal(
324
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
325
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
326
0
      if (result != TPM_RC_SUCCESS) {
327
0
        return result;
328
0
      }
329
0
      ++(*num_request_handles);
330
0
      return TPM_RC_SUCCESS;
331
0
#endif
332
#if IS_CC_ENABLED(FieldUpgradeData)
333
    case TPM_CC_FieldUpgradeData:
334
      return TPM_RC_SUCCESS;
335
#endif
336
#if IS_CC_ENABLED(FieldUpgradeStart)
337
    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
354
#if IS_CC_ENABLED(FirmwareRead)
355
    case TPM_CC_FirmwareRead:
356
      return TPM_RC_SUCCESS;
357
#endif
358
0
#if IS_CC_ENABLED(FlushContext)
359
0
    case TPM_CC_FlushContext:
360
0
      return TPM_RC_SUCCESS;
361
0
#endif
362
0
#if IS_CC_ENABLED(GetCapability)
363
0
    case TPM_CC_GetCapability:
364
0
      return TPM_RC_SUCCESS;
365
0
#endif
366
#if IS_CC_ENABLED(GetCommandAuditDigest)
367
    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
384
0
#if IS_CC_ENABLED(GetRandom)
385
2
    case TPM_CC_GetRandom:
386
2
      return TPM_RC_SUCCESS;
387
0
#endif
388
#if IS_CC_ENABLED(GetSessionAuditDigest)
389
    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
413
0
#if IS_CC_ENABLED(GetTestResult)
414
0
    case TPM_CC_GetTestResult:
415
0
      return TPM_RC_SUCCESS;
416
0
#endif
417
#if IS_CC_ENABLED(GetTime)
418
    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
435
0
#if IS_CC_ENABLED(HMAC)
436
1
    case TPM_CC_HMAC:
437
1
      result = TPMI_DH_OBJECT_Unmarshal(
438
1
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
439
1
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
440
1
      if (result != TPM_RC_SUCCESS) {
441
1
        return result;
442
1
      }
443
0
      ++(*num_request_handles);
444
0
      return TPM_RC_SUCCESS;
445
0
#endif
446
#if IS_CC_ENABLED(HMAC_Start)
447
    case TPM_CC_HMAC_Start:
448
      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
457
0
#if IS_CC_ENABLED(Hash)
458
8
    case TPM_CC_Hash:
459
8
      return TPM_RC_SUCCESS;
460
0
#endif
461
#if IS_CC_ENABLED(HashSequenceStart)
462
    case TPM_CC_HashSequenceStart:
463
      return TPM_RC_SUCCESS;
464
#endif
465
0
#if IS_CC_ENABLED(HierarchyChangeAuth)
466
4
    case TPM_CC_HierarchyChangeAuth:
467
4
      result = TPMI_RH_HIERARCHY_AUTH_Unmarshal(
468
4
          (TPMI_RH_HIERARCHY_AUTH*)&request_handles[*num_request_handles],
469
4
          request_handle_buffer_start, request_buffer_remaining_size);
470
4
      if (result != TPM_RC_SUCCESS) {
471
3
        return result;
472
3
      }
473
1
      ++(*num_request_handles);
474
1
      return TPM_RC_SUCCESS;
475
0
#endif
476
0
#if IS_CC_ENABLED(HierarchyControl)
477
0
    case TPM_CC_HierarchyControl:
478
0
      result = TPMI_RH_HIERARCHY_Unmarshal(
479
0
          (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles],
480
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
481
0
      if (result != TPM_RC_SUCCESS) {
482
0
        return result;
483
0
      }
484
0
      ++(*num_request_handles);
485
0
      return TPM_RC_SUCCESS;
486
0
#endif
487
0
#if IS_CC_ENABLED(Import)
488
0
    case TPM_CC_Import:
489
0
      result = TPMI_DH_OBJECT_Unmarshal(
490
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
491
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
492
0
      if (result != TPM_RC_SUCCESS) {
493
0
        return result;
494
0
      }
495
0
      ++(*num_request_handles);
496
0
      return TPM_RC_SUCCESS;
497
0
#endif
498
#if IS_CC_ENABLED(IncrementalSelfTest)
499
    case TPM_CC_IncrementalSelfTest:
500
      return TPM_RC_SUCCESS;
501
#endif
502
0
#if IS_CC_ENABLED(Load)
503
0
    case TPM_CC_Load:
504
0
      result = TPMI_DH_OBJECT_Unmarshal(
505
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
506
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
507
0
      if (result != TPM_RC_SUCCESS) {
508
0
        return result;
509
0
      }
510
0
      ++(*num_request_handles);
511
0
      return TPM_RC_SUCCESS;
512
0
#endif
513
0
#if IS_CC_ENABLED(LoadExternal)
514
97
    case TPM_CC_LoadExternal:
515
97
      return TPM_RC_SUCCESS;
516
0
#endif
517
#if IS_CC_ENABLED(MakeCredential)
518
    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
528
0
#if IS_CC_ENABLED(NV_Certify)
529
0
    case TPM_CC_NV_Certify:
530
0
      result = TPMI_DH_OBJECT_Unmarshal(
531
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
532
0
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
533
0
      if (result != TPM_RC_SUCCESS) {
534
0
        return result;
535
0
      }
536
0
      ++(*num_request_handles);
537
0
      result = TPMI_RH_NV_AUTH_Unmarshal(
538
0
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
539
0
          request_handle_buffer_start, request_buffer_remaining_size);
540
0
      if (result != TPM_RC_SUCCESS) {
541
0
        return result;
542
0
      }
543
0
      ++(*num_request_handles);
544
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
545
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
546
0
          request_handle_buffer_start, request_buffer_remaining_size);
547
0
      if (result != TPM_RC_SUCCESS) {
548
0
        return result;
549
0
      }
550
0
      ++(*num_request_handles);
551
0
      return TPM_RC_SUCCESS;
552
0
#endif
553
#if IS_CC_ENABLED(NV_ChangeAuth)
554
    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
564
0
#if IS_CC_ENABLED(NV_DefineSpace)
565
12
    case TPM_CC_NV_DefineSpace:
566
12
      result = TPMI_RH_PROVISION_Unmarshal(
567
12
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
568
12
          request_handle_buffer_start, request_buffer_remaining_size);
569
12
      if (result != TPM_RC_SUCCESS) {
570
0
        return result;
571
0
      }
572
12
      ++(*num_request_handles);
573
12
      return TPM_RC_SUCCESS;
574
0
#endif
575
0
#if IS_CC_ENABLED(NV_Extend)
576
0
    case TPM_CC_NV_Extend:
577
0
      result = TPMI_RH_NV_AUTH_Unmarshal(
578
0
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
579
0
          request_handle_buffer_start, request_buffer_remaining_size);
580
0
      if (result != TPM_RC_SUCCESS) {
581
0
        return result;
582
0
      }
583
0
      ++(*num_request_handles);
584
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
585
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
586
0
          request_handle_buffer_start, request_buffer_remaining_size);
587
0
      if (result != TPM_RC_SUCCESS) {
588
0
        return result;
589
0
      }
590
0
      ++(*num_request_handles);
591
0
      return TPM_RC_SUCCESS;
592
0
#endif
593
#if IS_CC_ENABLED(NV_GlobalWriteLock)
594
    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
604
0
#if IS_CC_ENABLED(NV_Increment)
605
0
    case TPM_CC_NV_Increment:
606
0
      result = TPMI_RH_NV_AUTH_Unmarshal(
607
0
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
608
0
          request_handle_buffer_start, request_buffer_remaining_size);
609
0
      if (result != TPM_RC_SUCCESS) {
610
0
        return result;
611
0
      }
612
0
      ++(*num_request_handles);
613
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
614
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
615
0
          request_handle_buffer_start, request_buffer_remaining_size);
616
0
      if (result != TPM_RC_SUCCESS) {
617
0
        return result;
618
0
      }
619
0
      ++(*num_request_handles);
620
0
      return TPM_RC_SUCCESS;
621
0
#endif
622
0
#if IS_CC_ENABLED(NV_Read)
623
0
    case TPM_CC_NV_Read:
624
0
      result = TPMI_RH_NV_AUTH_Unmarshal(
625
0
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
626
0
          request_handle_buffer_start, request_buffer_remaining_size);
627
0
      if (result != TPM_RC_SUCCESS) {
628
0
        return result;
629
0
      }
630
0
      ++(*num_request_handles);
631
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
632
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
633
0
          request_handle_buffer_start, request_buffer_remaining_size);
634
0
      if (result != TPM_RC_SUCCESS) {
635
0
        return result;
636
0
      }
637
0
      ++(*num_request_handles);
638
0
      return TPM_RC_SUCCESS;
639
0
#endif
640
0
#if IS_CC_ENABLED(NV_ReadLock)
641
1
    case TPM_CC_NV_ReadLock:
642
1
      result = TPMI_RH_NV_AUTH_Unmarshal(
643
1
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
644
1
          request_handle_buffer_start, request_buffer_remaining_size);
645
1
      if (result != TPM_RC_SUCCESS) {
646
0
        return result;
647
0
      }
648
1
      ++(*num_request_handles);
649
1
      result = TPMI_RH_NV_INDEX_Unmarshal(
650
1
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
651
1
          request_handle_buffer_start, request_buffer_remaining_size);
652
1
      if (result != TPM_RC_SUCCESS) {
653
1
        return result;
654
1
      }
655
0
      ++(*num_request_handles);
656
0
      return TPM_RC_SUCCESS;
657
0
#endif
658
0
#if IS_CC_ENABLED(NV_ReadPublic)
659
1
    case TPM_CC_NV_ReadPublic:
660
1
      result = TPMI_RH_NV_INDEX_Unmarshal(
661
1
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
662
1
          request_handle_buffer_start, request_buffer_remaining_size);
663
1
      if (result != TPM_RC_SUCCESS) {
664
1
        return result;
665
1
      }
666
0
      ++(*num_request_handles);
667
0
      return TPM_RC_SUCCESS;
668
0
#endif
669
#if IS_CC_ENABLED(NV_SetBits)
670
    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
687
0
#if IS_CC_ENABLED(NV_UndefineSpace)
688
0
    case TPM_CC_NV_UndefineSpace:
689
0
      result = TPMI_RH_PROVISION_Unmarshal(
690
0
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
691
0
          request_handle_buffer_start, request_buffer_remaining_size);
692
0
      if (result != TPM_RC_SUCCESS) {
693
0
        return result;
694
0
      }
695
0
      ++(*num_request_handles);
696
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
697
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
698
0
          request_handle_buffer_start, request_buffer_remaining_size);
699
0
      if (result != TPM_RC_SUCCESS) {
700
0
        return result;
701
0
      }
702
0
      ++(*num_request_handles);
703
0
      return TPM_RC_SUCCESS;
704
0
#endif
705
0
#if IS_CC_ENABLED(NV_UndefineSpaceSpecial)
706
2
    case TPM_CC_NV_UndefineSpaceSpecial:
707
2
      result = TPMI_RH_NV_INDEX_Unmarshal(
708
2
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
709
2
          request_handle_buffer_start, request_buffer_remaining_size);
710
2
      if (result != TPM_RC_SUCCESS) {
711
1
        return result;
712
1
      }
713
1
      ++(*num_request_handles);
714
1
      result = TPMI_RH_PLATFORM_Unmarshal(
715
1
          (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
716
1
          request_handle_buffer_start, request_buffer_remaining_size);
717
1
      if (result != TPM_RC_SUCCESS) {
718
1
        return result;
719
1
      }
720
0
      ++(*num_request_handles);
721
0
      return TPM_RC_SUCCESS;
722
0
#endif
723
0
#if IS_CC_ENABLED(NV_Write)
724
0
    case TPM_CC_NV_Write:
725
0
      result = TPMI_RH_NV_AUTH_Unmarshal(
726
0
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
727
0
          request_handle_buffer_start, request_buffer_remaining_size);
728
0
      if (result != TPM_RC_SUCCESS) {
729
0
        return result;
730
0
      }
731
0
      ++(*num_request_handles);
732
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
733
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
734
0
          request_handle_buffer_start, request_buffer_remaining_size);
735
0
      if (result != TPM_RC_SUCCESS) {
736
0
        return result;
737
0
      }
738
0
      ++(*num_request_handles);
739
0
      return TPM_RC_SUCCESS;
740
0
#endif
741
0
#if IS_CC_ENABLED(NV_WriteLock)
742
0
    case TPM_CC_NV_WriteLock:
743
0
      result = TPMI_RH_NV_AUTH_Unmarshal(
744
0
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
745
0
          request_handle_buffer_start, request_buffer_remaining_size);
746
0
      if (result != TPM_RC_SUCCESS) {
747
0
        return result;
748
0
      }
749
0
      ++(*num_request_handles);
750
0
      result = TPMI_RH_NV_INDEX_Unmarshal(
751
0
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
752
0
          request_handle_buffer_start, request_buffer_remaining_size);
753
0
      if (result != TPM_RC_SUCCESS) {
754
0
        return result;
755
0
      }
756
0
      ++(*num_request_handles);
757
0
      return TPM_RC_SUCCESS;
758
0
#endif
759
0
#if IS_CC_ENABLED(ObjectChangeAuth)
760
0
    case TPM_CC_ObjectChangeAuth:
761
0
      result = TPMI_DH_OBJECT_Unmarshal(
762
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
763
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
764
0
      if (result != TPM_RC_SUCCESS) {
765
0
        return result;
766
0
      }
767
0
      ++(*num_request_handles);
768
0
      result = TPMI_DH_OBJECT_Unmarshal(
769
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
770
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
771
0
      if (result != TPM_RC_SUCCESS) {
772
0
        return result;
773
0
      }
774
0
      ++(*num_request_handles);
775
0
      return TPM_RC_SUCCESS;
776
0
#endif
777
0
#if IS_CC_ENABLED(PCR_Allocate)
778
0
    case TPM_CC_PCR_Allocate:
779
0
      result = TPMI_RH_PLATFORM_Unmarshal(
780
0
          (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
781
0
          request_handle_buffer_start, request_buffer_remaining_size);
782
0
      if (result != TPM_RC_SUCCESS) {
783
0
        return result;
784
0
      }
785
0
      ++(*num_request_handles);
786
0
      return TPM_RC_SUCCESS;
787
0
#endif
788
#if IS_CC_ENABLED(PCR_Event)
789
    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
799
0
#if IS_CC_ENABLED(PCR_Extend)
800
20
    case TPM_CC_PCR_Extend:
801
20
      result = TPMI_DH_PCR_Unmarshal(
802
20
          (TPMI_DH_PCR*)&request_handles[*num_request_handles],
803
20
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
804
20
      if (result != TPM_RC_SUCCESS) {
805
0
        return result;
806
0
      }
807
20
      ++(*num_request_handles);
808
20
      return TPM_RC_SUCCESS;
809
0
#endif
810
0
#if IS_CC_ENABLED(PCR_Read)
811
1
    case TPM_CC_PCR_Read:
812
1
      return TPM_RC_SUCCESS;
813
0
#endif
814
0
#if IS_CC_ENABLED(PCR_Reset)
815
0
    case TPM_CC_PCR_Reset:
816
0
      result = TPMI_DH_PCR_Unmarshal(
817
0
          (TPMI_DH_PCR*)&request_handles[*num_request_handles],
818
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
819
0
      if (result != TPM_RC_SUCCESS) {
820
0
        return result;
821
0
      }
822
0
      ++(*num_request_handles);
823
0
      return TPM_RC_SUCCESS;
824
0
#endif
825
#if IS_CC_ENABLED(PCR_SetAuthPolicy)
826
    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
843
#if IS_CC_ENABLED(PCR_SetAuthValue)
844
    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
854
#if IS_CC_ENABLED(PP_Commands)
855
    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);
859
      if (result != TPM_RC_SUCCESS) {
860
        return result;
861
      }
862
      ++(*num_request_handles);
863
      return TPM_RC_SUCCESS;
864
#endif
865
0
#if IS_CC_ENABLED(PolicyAuthValue)
866
0
    case TPM_CC_PolicyAuthValue:
867
0
      result = TPMI_SH_POLICY_Unmarshal(
868
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
869
0
          request_handle_buffer_start, request_buffer_remaining_size);
870
0
      if (result != TPM_RC_SUCCESS) {
871
0
        return result;
872
0
      }
873
0
      ++(*num_request_handles);
874
0
      return TPM_RC_SUCCESS;
875
0
#endif
876
#if IS_CC_ENABLED(PolicyAuthorize)
877
    case TPM_CC_PolicyAuthorize:
878
      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
887
0
#if IS_CC_ENABLED(PolicyCommandCode)
888
0
    case TPM_CC_PolicyCommandCode:
889
0
      result = TPMI_SH_POLICY_Unmarshal(
890
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
891
0
          request_handle_buffer_start, request_buffer_remaining_size);
892
0
      if (result != TPM_RC_SUCCESS) {
893
0
        return result;
894
0
      }
895
0
      ++(*num_request_handles);
896
0
      return TPM_RC_SUCCESS;
897
0
#endif
898
#if IS_CC_ENABLED(PolicyCounterTimer)
899
    case TPM_CC_PolicyCounterTimer:
900
      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
909
#if IS_CC_ENABLED(PolicyCpHash)
910
    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
920
#if IS_CC_ENABLED(PolicyDuplicationSelect)
921
    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
931
0
#if IS_CC_ENABLED(PolicyGetDigest)
932
0
    case TPM_CC_PolicyGetDigest:
933
0
      result = TPMI_SH_POLICY_Unmarshal(
934
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
935
0
          request_handle_buffer_start, request_buffer_remaining_size);
936
0
      if (result != TPM_RC_SUCCESS) {
937
0
        return result;
938
0
      }
939
0
      ++(*num_request_handles);
940
0
      return TPM_RC_SUCCESS;
941
0
#endif
942
#if IS_CC_ENABLED(PolicyLocality)
943
    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
953
#if IS_CC_ENABLED(PolicyNV)
954
    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
978
#if IS_CC_ENABLED(PolicyNameHash)
979
    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
989
#if IS_CC_ENABLED(PolicyNvWritten)
990
    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
1000
0
#if IS_CC_ENABLED(PolicyOR)
1001
0
    case TPM_CC_PolicyOR:
1002
0
      result = TPMI_SH_POLICY_Unmarshal(
1003
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1004
0
          request_handle_buffer_start, request_buffer_remaining_size);
1005
0
      if (result != TPM_RC_SUCCESS) {
1006
0
        return result;
1007
0
      }
1008
0
      ++(*num_request_handles);
1009
0
      return TPM_RC_SUCCESS;
1010
0
#endif
1011
0
#if IS_CC_ENABLED(PolicyPCR)
1012
0
    case TPM_CC_PolicyPCR:
1013
0
      result = TPMI_SH_POLICY_Unmarshal(
1014
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1015
0
          request_handle_buffer_start, request_buffer_remaining_size);
1016
0
      if (result != TPM_RC_SUCCESS) {
1017
0
        return result;
1018
0
      }
1019
0
      ++(*num_request_handles);
1020
0
      return TPM_RC_SUCCESS;
1021
0
#endif
1022
#if IS_CC_ENABLED(PolicyPassword)
1023
    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
1033
#if IS_CC_ENABLED(PolicyPhysicalPresence)
1034
    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
1044
0
#if IS_CC_ENABLED(PolicyRestart)
1045
1
    case TPM_CC_PolicyRestart:
1046
1
      result = TPMI_SH_POLICY_Unmarshal(
1047
1
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1048
1
          request_handle_buffer_start, request_buffer_remaining_size);
1049
1
      if (result != TPM_RC_SUCCESS) {
1050
1
        return result;
1051
1
      }
1052
0
      ++(*num_request_handles);
1053
0
      return TPM_RC_SUCCESS;
1054
0
#endif
1055
0
#if IS_CC_ENABLED(PolicySecret)
1056
0
    case TPM_CC_PolicySecret:
1057
0
      result = TPMI_DH_ENTITY_Unmarshal(
1058
0
          (TPMI_DH_ENTITY*)&request_handles[*num_request_handles],
1059
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1060
0
      if (result != TPM_RC_SUCCESS) {
1061
0
        return result;
1062
0
      }
1063
0
      ++(*num_request_handles);
1064
0
      result = TPMI_SH_POLICY_Unmarshal(
1065
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1066
0
          request_handle_buffer_start, request_buffer_remaining_size);
1067
0
      if (result != TPM_RC_SUCCESS) {
1068
0
        return result;
1069
0
      }
1070
0
      ++(*num_request_handles);
1071
0
      return TPM_RC_SUCCESS;
1072
0
#endif
1073
0
#if IS_CC_ENABLED(PolicySigned)
1074
0
    case TPM_CC_PolicySigned:
1075
0
      result = TPMI_DH_OBJECT_Unmarshal(
1076
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1077
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1078
0
      if (result != TPM_RC_SUCCESS) {
1079
0
        return result;
1080
0
      }
1081
0
      ++(*num_request_handles);
1082
0
      result = TPMI_SH_POLICY_Unmarshal(
1083
0
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1084
0
          request_handle_buffer_start, request_buffer_remaining_size);
1085
0
      if (result != TPM_RC_SUCCESS) {
1086
0
        return result;
1087
0
      }
1088
0
      ++(*num_request_handles);
1089
0
      return TPM_RC_SUCCESS;
1090
0
#endif
1091
#if IS_CC_ENABLED(PolicyTicket)
1092
    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
1102
0
#if IS_CC_ENABLED(Quote)
1103
12
    case TPM_CC_Quote:
1104
12
      result = TPMI_DH_OBJECT_Unmarshal(
1105
12
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1106
12
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1107
12
      if (result != TPM_RC_SUCCESS) {
1108
1
        return result;
1109
1
      }
1110
11
      ++(*num_request_handles);
1111
11
      return TPM_RC_SUCCESS;
1112
0
#endif
1113
0
#if IS_CC_ENABLED(RSA_Decrypt)
1114
0
    case TPM_CC_RSA_Decrypt:
1115
0
      result = TPMI_DH_OBJECT_Unmarshal(
1116
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1117
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1118
0
      if (result != TPM_RC_SUCCESS) {
1119
0
        return result;
1120
0
      }
1121
0
      ++(*num_request_handles);
1122
0
      return TPM_RC_SUCCESS;
1123
0
#endif
1124
0
#if IS_CC_ENABLED(RSA_Encrypt)
1125
0
    case TPM_CC_RSA_Encrypt:
1126
0
      result = TPMI_DH_OBJECT_Unmarshal(
1127
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1128
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1129
0
      if (result != TPM_RC_SUCCESS) {
1130
0
        return result;
1131
0
      }
1132
0
      ++(*num_request_handles);
1133
0
      return TPM_RC_SUCCESS;
1134
0
#endif
1135
#if IS_CC_ENABLED(ReadClock)
1136
    case TPM_CC_ReadClock:
1137
      return TPM_RC_SUCCESS;
1138
#endif
1139
0
#if IS_CC_ENABLED(ReadPublic)
1140
0
    case TPM_CC_ReadPublic:
1141
0
      result = TPMI_DH_OBJECT_Unmarshal(
1142
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1143
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1144
0
      if (result != TPM_RC_SUCCESS) {
1145
0
        return result;
1146
0
      }
1147
0
      ++(*num_request_handles);
1148
0
      return TPM_RC_SUCCESS;
1149
0
#endif
1150
#if IS_CC_ENABLED(Rewrap)
1151
    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
1168
0
#if IS_CC_ENABLED(SelfTest)
1169
3
    case TPM_CC_SelfTest:
1170
3
      return TPM_RC_SUCCESS;
1171
0
#endif
1172
#if IS_CC_ENABLED(SequenceComplete)
1173
    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);
1181
      return TPM_RC_SUCCESS;
1182
#endif
1183
#if IS_CC_ENABLED(SequenceUpdate)
1184
    case TPM_CC_SequenceUpdate:
1185
      result = TPMI_DH_OBJECT_Unmarshal(
1186
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1187
          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
1194
#if IS_CC_ENABLED(SetAlgorithmSet)
1195
    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
1205
#if IS_CC_ENABLED(SetCommandCodeAuditStatus)
1206
    case TPM_CC_SetCommandCodeAuditStatus:
1207
      result = TPMI_RH_PROVISION_Unmarshal(
1208
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
1209
          request_handle_buffer_start, request_buffer_remaining_size);
1210
      if (result != TPM_RC_SUCCESS) {
1211
        return result;
1212
      }
1213
      ++(*num_request_handles);
1214
      return TPM_RC_SUCCESS;
1215
#endif
1216
#if IS_CC_ENABLED(SetPrimaryPolicy)
1217
    case TPM_CC_SetPrimaryPolicy:
1218
      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);
1221
      if (result != TPM_RC_SUCCESS) {
1222
        return result;
1223
      }
1224
      ++(*num_request_handles);
1225
      return TPM_RC_SUCCESS;
1226
#endif
1227
0
#if IS_CC_ENABLED(Shutdown)
1228
1
    case TPM_CC_Shutdown:
1229
1
      return TPM_RC_SUCCESS;
1230
0
#endif
1231
0
#if IS_CC_ENABLED(Sign)
1232
1
    case TPM_CC_Sign:
1233
1
      result = TPMI_DH_OBJECT_Unmarshal(
1234
1
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1235
1
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1236
1
      if (result != TPM_RC_SUCCESS) {
1237
1
        return result;
1238
1
      }
1239
0
      ++(*num_request_handles);
1240
0
      return TPM_RC_SUCCESS;
1241
0
#endif
1242
0
#if IS_CC_ENABLED(StartAuthSession)
1243
5
    case TPM_CC_StartAuthSession:
1244
5
      result = TPMI_DH_OBJECT_Unmarshal(
1245
5
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1246
5
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1247
5
      if (result != TPM_RC_SUCCESS) {
1248
0
        return result;
1249
0
      }
1250
5
      ++(*num_request_handles);
1251
5
      result = TPMI_DH_ENTITY_Unmarshal(
1252
5
          (TPMI_DH_ENTITY*)&request_handles[*num_request_handles],
1253
5
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1254
5
      if (result != TPM_RC_SUCCESS) {
1255
0
        return result;
1256
0
      }
1257
5
      ++(*num_request_handles);
1258
5
      return TPM_RC_SUCCESS;
1259
0
#endif
1260
0
#if IS_CC_ENABLED(Startup)
1261
231
    case TPM_CC_Startup:
1262
231
      return TPM_RC_SUCCESS;
1263
0
#endif
1264
0
#if IS_CC_ENABLED(StirRandom)
1265
2
    case TPM_CC_StirRandom:
1266
2
      return TPM_RC_SUCCESS;
1267
0
#endif
1268
0
#if IS_CC_ENABLED(TestParms)
1269
5
    case TPM_CC_TestParms:
1270
5
      return TPM_RC_SUCCESS;
1271
0
#endif
1272
0
#if IS_CC_ENABLED(Unseal)
1273
0
    case TPM_CC_Unseal:
1274
0
      result = TPMI_DH_OBJECT_Unmarshal(
1275
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1276
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1277
0
      if (result != TPM_RC_SUCCESS) {
1278
0
        return result;
1279
0
      }
1280
0
      ++(*num_request_handles);
1281
0
      return TPM_RC_SUCCESS;
1282
0
#endif
1283
0
#if IS_CC_ENABLED(VerifySignature)
1284
0
    case TPM_CC_VerifySignature:
1285
0
      result = TPMI_DH_OBJECT_Unmarshal(
1286
0
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1287
0
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1288
0
      if (result != TPM_RC_SUCCESS) {
1289
0
        return result;
1290
0
      }
1291
0
      ++(*num_request_handles);
1292
0
      return TPM_RC_SUCCESS;
1293
0
#endif
1294
#if IS_CC_ENABLED(ZGen_2Phase)
1295
    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);
1299
      if (result != TPM_RC_SUCCESS) {
1300
        return result;
1301
      }
1302
      ++(*num_request_handles);
1303
      return TPM_RC_SUCCESS;
1304
#endif
1305
0
    default:
1306
0
      return TPM_RC_COMMAND_CODE;
1307
439
  }
1308
439
}