Coverage Report

Created: 2025-08-03 06:30

/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
10.7k
                         UINT32* num_request_handles) {
17
10.7k
  TPM_RC result = TPM_RC_SUCCESS;
18
10.7k
  *num_request_handles = 0;
19
20
10.7k
  if (command_code & TPM_CCE_BIT_MASK) {
21
6
    switch (command_code) {
22
0
#if IS_CCE_ENABLED(PolicyFidoSigned)
23
6
    case TPM_CCE_PolicyFidoSigned:
24
6
      result = TPMI_DH_OBJECT_Unmarshal(
25
6
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
26
6
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
27
6
      if (result != TPM_RC_SUCCESS)
28
4
        return result;
29
30
2
      ++(*num_request_handles);
31
2
      result = TPMI_SH_POLICY_Unmarshal(
32
2
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
33
2
          request_handle_buffer_start, request_buffer_remaining_size);
34
2
      if (result != TPM_RC_SUCCESS)
35
1
        return result;
36
37
1
      ++(*num_request_handles);
38
1
      return TPM_RC_SUCCESS;
39
0
#endif
40
0
    default:
41
0
      break;
42
6
    }
43
0
    return TPM_RC_COMMAND_CODE;
44
6
  }
45
46
10.7k
  switch (command_code) {
47
0
#if IS_CC_ENABLED(ActivateCredential)
48
7
    case TPM_CC_ActivateCredential:
49
7
      result = TPMI_DH_OBJECT_Unmarshal(
50
7
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
51
7
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
52
7
      if (result != TPM_RC_SUCCESS) {
53
4
        return result;
54
4
      }
55
3
      ++(*num_request_handles);
56
3
      result = TPMI_DH_OBJECT_Unmarshal(
57
3
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
58
3
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
59
3
      if (result != TPM_RC_SUCCESS) {
60
2
        return result;
61
2
      }
62
1
      ++(*num_request_handles);
63
1
      return TPM_RC_SUCCESS;
64
0
#endif
65
0
#if IS_CC_ENABLED(Certify)
66
5
    case TPM_CC_Certify:
67
5
      result = TPMI_DH_OBJECT_Unmarshal(
68
5
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
69
5
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
70
5
      if (result != TPM_RC_SUCCESS) {
71
2
        return result;
72
2
      }
73
3
      ++(*num_request_handles);
74
3
      result = TPMI_DH_OBJECT_Unmarshal(
75
3
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
76
3
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
77
3
      if (result != TPM_RC_SUCCESS) {
78
2
        return result;
79
2
      }
80
1
      ++(*num_request_handles);
81
1
      return TPM_RC_SUCCESS;
82
0
#endif
83
0
#if IS_CC_ENABLED(CertifyCreation)
84
5
    case TPM_CC_CertifyCreation:
85
5
      result = TPMI_DH_OBJECT_Unmarshal(
86
5
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
87
5
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
88
5
      if (result != TPM_RC_SUCCESS) {
89
1
        return result;
90
1
      }
91
4
      ++(*num_request_handles);
92
4
      result = TPMI_DH_OBJECT_Unmarshal(
93
4
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
94
4
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
95
4
      if (result != TPM_RC_SUCCESS) {
96
3
        return result;
97
3
      }
98
1
      ++(*num_request_handles);
99
1
      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
56
    case TPM_CC_Clear:
125
56
      result = TPMI_RH_CLEAR_Unmarshal(
126
56
          (TPMI_RH_CLEAR*)&request_handles[*num_request_handles],
127
56
          request_handle_buffer_start, request_buffer_remaining_size);
128
56
      if (result != TPM_RC_SUCCESS) {
129
49
        return result;
130
49
      }
131
7
      ++(*num_request_handles);
132
7
      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
10
    case TPM_CC_Commit:
169
10
      result = TPMI_DH_OBJECT_Unmarshal(
170
10
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
171
10
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
172
10
      if (result != TPM_RC_SUCCESS) {
173
6
        return result;
174
6
      }
175
4
      ++(*num_request_handles);
176
4
      return TPM_RC_SUCCESS;
177
0
#endif
178
0
#if IS_CC_ENABLED(ContextLoad)
179
322
    case TPM_CC_ContextLoad:
180
322
      return TPM_RC_SUCCESS;
181
0
#endif
182
0
#if IS_CC_ENABLED(ContextSave)
183
25
    case TPM_CC_ContextSave:
184
25
      result = TPMI_DH_CONTEXT_Unmarshal(
185
25
          (TPMI_DH_CONTEXT*)&request_handles[*num_request_handles],
186
25
          request_handle_buffer_start, request_buffer_remaining_size);
187
25
      if (result != TPM_RC_SUCCESS) {
188
20
        return result;
189
20
      }
190
5
      ++(*num_request_handles);
191
5
      return TPM_RC_SUCCESS;
192
0
#endif
193
0
#if IS_CC_ENABLED(Create)
194
12
    case TPM_CC_Create:
195
12
      result = TPMI_DH_OBJECT_Unmarshal(
196
12
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
197
12
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
198
12
      if (result != TPM_RC_SUCCESS) {
199
4
        return result;
200
4
      }
201
8
      ++(*num_request_handles);
202
8
      return TPM_RC_SUCCESS;
203
0
#endif
204
0
#if IS_CC_ENABLED(CreatePrimary)
205
317
    case TPM_CC_CreatePrimary:
206
317
      result = TPMI_RH_HIERARCHY_Unmarshal(
207
317
          (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles],
208
317
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
209
317
      if (result != TPM_RC_SUCCESS) {
210
70
        return result;
211
70
      }
212
247
      ++(*num_request_handles);
213
247
      return TPM_RC_SUCCESS;
214
0
#endif
215
0
#if IS_CC_ENABLED(DictionaryAttackLockReset)
216
46
    case TPM_CC_DictionaryAttackLockReset:
217
46
      result = TPMI_RH_LOCKOUT_Unmarshal(
218
46
          (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles],
219
46
          request_handle_buffer_start, request_buffer_remaining_size);
220
46
      if (result != TPM_RC_SUCCESS) {
221
37
        return result;
222
37
      }
223
9
      ++(*num_request_handles);
224
9
      return TPM_RC_SUCCESS;
225
0
#endif
226
0
#if IS_CC_ENABLED(DictionaryAttackParameters)
227
20
    case TPM_CC_DictionaryAttackParameters:
228
20
      result = TPMI_RH_LOCKOUT_Unmarshal(
229
20
          (TPMI_RH_LOCKOUT*)&request_handles[*num_request_handles],
230
20
          request_handle_buffer_start, request_buffer_remaining_size);
231
20
      if (result != TPM_RC_SUCCESS) {
232
14
        return result;
233
14
      }
234
6
      ++(*num_request_handles);
235
6
      return TPM_RC_SUCCESS;
236
0
#endif
237
0
#if IS_CC_ENABLED(Duplicate)
238
8
    case TPM_CC_Duplicate:
239
8
      result = TPMI_DH_OBJECT_Unmarshal(
240
8
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
241
8
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
242
8
      if (result != TPM_RC_SUCCESS) {
243
5
        return result;
244
5
      }
245
3
      ++(*num_request_handles);
246
3
      result = TPMI_DH_OBJECT_Unmarshal(
247
3
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
248
3
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
249
3
      if (result != TPM_RC_SUCCESS) {
250
2
        return result;
251
2
      }
252
1
      ++(*num_request_handles);
253
1
      return TPM_RC_SUCCESS;
254
0
#endif
255
0
#if IS_CC_ENABLED(ECC_Parameters)
256
31
    case TPM_CC_ECC_Parameters:
257
31
      return TPM_RC_SUCCESS;
258
0
#endif
259
0
#if IS_CC_ENABLED(ECDH_KeyGen)
260
10
    case TPM_CC_ECDH_KeyGen:
261
10
      result = TPMI_DH_OBJECT_Unmarshal(
262
10
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
263
10
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
264
10
      if (result != TPM_RC_SUCCESS) {
265
3
        return result;
266
3
      }
267
7
      ++(*num_request_handles);
268
7
      return TPM_RC_SUCCESS;
269
0
#endif
270
0
#if IS_CC_ENABLED(ECDH_ZGen)
271
12
    case TPM_CC_ECDH_ZGen:
272
12
      result = TPMI_DH_OBJECT_Unmarshal(
273
12
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
274
12
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
275
12
      if (result != TPM_RC_SUCCESS) {
276
7
        return result;
277
7
      }
278
5
      ++(*num_request_handles);
279
5
      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
16
    case TPM_CC_EvictControl:
316
16
      result = TPMI_RH_PROVISION_Unmarshal(
317
16
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
318
16
          request_handle_buffer_start, request_buffer_remaining_size);
319
16
      if (result != TPM_RC_SUCCESS) {
320
14
        return result;
321
14
      }
322
2
      ++(*num_request_handles);
323
2
      result = TPMI_DH_OBJECT_Unmarshal(
324
2
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
325
2
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
326
2
      if (result != TPM_RC_SUCCESS) {
327
1
        return result;
328
1
      }
329
1
      ++(*num_request_handles);
330
1
      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
103
    case TPM_CC_FlushContext:
360
103
      return TPM_RC_SUCCESS;
361
0
#endif
362
0
#if IS_CC_ENABLED(GetCapability)
363
1.08k
    case TPM_CC_GetCapability:
364
1.08k
      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
38
    case TPM_CC_GetRandom:
386
38
      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
8
    case TPM_CC_GetTestResult:
415
8
      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
13
    case TPM_CC_HMAC:
437
13
      result = TPMI_DH_OBJECT_Unmarshal(
438
13
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
439
13
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
440
13
      if (result != TPM_RC_SUCCESS) {
441
8
        return result;
442
8
      }
443
5
      ++(*num_request_handles);
444
5
      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
97
    case TPM_CC_Hash:
459
97
      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
68
    case TPM_CC_HierarchyChangeAuth:
467
68
      result = TPMI_RH_HIERARCHY_AUTH_Unmarshal(
468
68
          (TPMI_RH_HIERARCHY_AUTH*)&request_handles[*num_request_handles],
469
68
          request_handle_buffer_start, request_buffer_remaining_size);
470
68
      if (result != TPM_RC_SUCCESS) {
471
46
        return result;
472
46
      }
473
22
      ++(*num_request_handles);
474
22
      return TPM_RC_SUCCESS;
475
0
#endif
476
0
#if IS_CC_ENABLED(HierarchyControl)
477
150
    case TPM_CC_HierarchyControl:
478
150
      result = TPMI_RH_HIERARCHY_Unmarshal(
479
150
          (TPMI_RH_HIERARCHY*)&request_handles[*num_request_handles],
480
150
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
481
150
      if (result != TPM_RC_SUCCESS) {
482
24
        return result;
483
24
      }
484
126
      ++(*num_request_handles);
485
126
      return TPM_RC_SUCCESS;
486
0
#endif
487
0
#if IS_CC_ENABLED(Import)
488
7
    case TPM_CC_Import:
489
7
      result = TPMI_DH_OBJECT_Unmarshal(
490
7
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
491
7
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
492
7
      if (result != TPM_RC_SUCCESS) {
493
3
        return result;
494
3
      }
495
4
      ++(*num_request_handles);
496
4
      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
7
    case TPM_CC_Load:
504
7
      result = TPMI_DH_OBJECT_Unmarshal(
505
7
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
506
7
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
507
7
      if (result != TPM_RC_SUCCESS) {
508
3
        return result;
509
3
      }
510
4
      ++(*num_request_handles);
511
4
      return TPM_RC_SUCCESS;
512
0
#endif
513
0
#if IS_CC_ENABLED(LoadExternal)
514
686
    case TPM_CC_LoadExternal:
515
686
      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
9
    case TPM_CC_NV_Certify:
530
9
      result = TPMI_DH_OBJECT_Unmarshal(
531
9
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
532
9
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
533
9
      if (result != TPM_RC_SUCCESS) {
534
3
        return result;
535
3
      }
536
6
      ++(*num_request_handles);
537
6
      result = TPMI_RH_NV_AUTH_Unmarshal(
538
6
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
539
6
          request_handle_buffer_start, request_buffer_remaining_size);
540
6
      if (result != TPM_RC_SUCCESS) {
541
3
        return result;
542
3
      }
543
3
      ++(*num_request_handles);
544
3
      result = TPMI_RH_NV_INDEX_Unmarshal(
545
3
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
546
3
          request_handle_buffer_start, request_buffer_remaining_size);
547
3
      if (result != TPM_RC_SUCCESS) {
548
1
        return result;
549
1
      }
550
2
      ++(*num_request_handles);
551
2
      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
255
    case TPM_CC_NV_DefineSpace:
566
255
      result = TPMI_RH_PROVISION_Unmarshal(
567
255
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
568
255
          request_handle_buffer_start, request_buffer_remaining_size);
569
255
      if (result != TPM_RC_SUCCESS) {
570
23
        return result;
571
23
      }
572
232
      ++(*num_request_handles);
573
232
      return TPM_RC_SUCCESS;
574
0
#endif
575
0
#if IS_CC_ENABLED(NV_Extend)
576
20
    case TPM_CC_NV_Extend:
577
20
      result = TPMI_RH_NV_AUTH_Unmarshal(
578
20
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
579
20
          request_handle_buffer_start, request_buffer_remaining_size);
580
20
      if (result != TPM_RC_SUCCESS) {
581
17
        return result;
582
17
      }
583
3
      ++(*num_request_handles);
584
3
      result = TPMI_RH_NV_INDEX_Unmarshal(
585
3
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
586
3
          request_handle_buffer_start, request_buffer_remaining_size);
587
3
      if (result != TPM_RC_SUCCESS) {
588
2
        return result;
589
2
      }
590
1
      ++(*num_request_handles);
591
1
      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
33
    case TPM_CC_NV_Increment:
606
33
      result = TPMI_RH_NV_AUTH_Unmarshal(
607
33
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
608
33
          request_handle_buffer_start, request_buffer_remaining_size);
609
33
      if (result != TPM_RC_SUCCESS) {
610
25
        return result;
611
25
      }
612
8
      ++(*num_request_handles);
613
8
      result = TPMI_RH_NV_INDEX_Unmarshal(
614
8
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
615
8
          request_handle_buffer_start, request_buffer_remaining_size);
616
8
      if (result != TPM_RC_SUCCESS) {
617
7
        return result;
618
7
      }
619
1
      ++(*num_request_handles);
620
1
      return TPM_RC_SUCCESS;
621
0
#endif
622
0
#if IS_CC_ENABLED(NV_Read)
623
27
    case TPM_CC_NV_Read:
624
27
      result = TPMI_RH_NV_AUTH_Unmarshal(
625
27
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
626
27
          request_handle_buffer_start, request_buffer_remaining_size);
627
27
      if (result != TPM_RC_SUCCESS) {
628
14
        return result;
629
14
      }
630
13
      ++(*num_request_handles);
631
13
      result = TPMI_RH_NV_INDEX_Unmarshal(
632
13
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
633
13
          request_handle_buffer_start, request_buffer_remaining_size);
634
13
      if (result != TPM_RC_SUCCESS) {
635
12
        return result;
636
12
      }
637
1
      ++(*num_request_handles);
638
1
      return TPM_RC_SUCCESS;
639
0
#endif
640
0
#if IS_CC_ENABLED(NV_ReadLock)
641
17
    case TPM_CC_NV_ReadLock:
642
17
      result = TPMI_RH_NV_AUTH_Unmarshal(
643
17
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
644
17
          request_handle_buffer_start, request_buffer_remaining_size);
645
17
      if (result != TPM_RC_SUCCESS) {
646
9
        return result;
647
9
      }
648
8
      ++(*num_request_handles);
649
8
      result = TPMI_RH_NV_INDEX_Unmarshal(
650
8
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
651
8
          request_handle_buffer_start, request_buffer_remaining_size);
652
8
      if (result != TPM_RC_SUCCESS) {
653
7
        return result;
654
7
      }
655
1
      ++(*num_request_handles);
656
1
      return TPM_RC_SUCCESS;
657
0
#endif
658
0
#if IS_CC_ENABLED(NV_ReadPublic)
659
26
    case TPM_CC_NV_ReadPublic:
660
26
      result = TPMI_RH_NV_INDEX_Unmarshal(
661
26
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
662
26
          request_handle_buffer_start, request_buffer_remaining_size);
663
26
      if (result != TPM_RC_SUCCESS) {
664
14
        return result;
665
14
      }
666
12
      ++(*num_request_handles);
667
12
      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
27
    case TPM_CC_NV_UndefineSpace:
689
27
      result = TPMI_RH_PROVISION_Unmarshal(
690
27
          (TPMI_RH_PROVISION*)&request_handles[*num_request_handles],
691
27
          request_handle_buffer_start, request_buffer_remaining_size);
692
27
      if (result != TPM_RC_SUCCESS) {
693
25
        return result;
694
25
      }
695
2
      ++(*num_request_handles);
696
2
      result = TPMI_RH_NV_INDEX_Unmarshal(
697
2
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
698
2
          request_handle_buffer_start, request_buffer_remaining_size);
699
2
      if (result != TPM_RC_SUCCESS) {
700
1
        return result;
701
1
      }
702
1
      ++(*num_request_handles);
703
1
      return TPM_RC_SUCCESS;
704
0
#endif
705
0
#if IS_CC_ENABLED(NV_UndefineSpaceSpecial)
706
44
    case TPM_CC_NV_UndefineSpaceSpecial:
707
44
      result = TPMI_RH_NV_INDEX_Unmarshal(
708
44
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
709
44
          request_handle_buffer_start, request_buffer_remaining_size);
710
44
      if (result != TPM_RC_SUCCESS) {
711
27
        return result;
712
27
      }
713
17
      ++(*num_request_handles);
714
17
      result = TPMI_RH_PLATFORM_Unmarshal(
715
17
          (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
716
17
          request_handle_buffer_start, request_buffer_remaining_size);
717
17
      if (result != TPM_RC_SUCCESS) {
718
16
        return result;
719
16
      }
720
1
      ++(*num_request_handles);
721
1
      return TPM_RC_SUCCESS;
722
0
#endif
723
0
#if IS_CC_ENABLED(NV_Write)
724
10
    case TPM_CC_NV_Write:
725
10
      result = TPMI_RH_NV_AUTH_Unmarshal(
726
10
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
727
10
          request_handle_buffer_start, request_buffer_remaining_size);
728
10
      if (result != TPM_RC_SUCCESS) {
729
4
        return result;
730
4
      }
731
6
      ++(*num_request_handles);
732
6
      result = TPMI_RH_NV_INDEX_Unmarshal(
733
6
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
734
6
          request_handle_buffer_start, request_buffer_remaining_size);
735
6
      if (result != TPM_RC_SUCCESS) {
736
5
        return result;
737
5
      }
738
1
      ++(*num_request_handles);
739
1
      return TPM_RC_SUCCESS;
740
0
#endif
741
0
#if IS_CC_ENABLED(NV_WriteLock)
742
36
    case TPM_CC_NV_WriteLock:
743
36
      result = TPMI_RH_NV_AUTH_Unmarshal(
744
36
          (TPMI_RH_NV_AUTH*)&request_handles[*num_request_handles],
745
36
          request_handle_buffer_start, request_buffer_remaining_size);
746
36
      if (result != TPM_RC_SUCCESS) {
747
29
        return result;
748
29
      }
749
7
      ++(*num_request_handles);
750
7
      result = TPMI_RH_NV_INDEX_Unmarshal(
751
7
          (TPMI_RH_NV_INDEX*)&request_handles[*num_request_handles],
752
7
          request_handle_buffer_start, request_buffer_remaining_size);
753
7
      if (result != TPM_RC_SUCCESS) {
754
6
        return result;
755
6
      }
756
1
      ++(*num_request_handles);
757
1
      return TPM_RC_SUCCESS;
758
0
#endif
759
0
#if IS_CC_ENABLED(ObjectChangeAuth)
760
11
    case TPM_CC_ObjectChangeAuth:
761
11
      result = TPMI_DH_OBJECT_Unmarshal(
762
11
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
763
11
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
764
11
      if (result != TPM_RC_SUCCESS) {
765
8
        return result;
766
8
      }
767
3
      ++(*num_request_handles);
768
3
      result = TPMI_DH_OBJECT_Unmarshal(
769
3
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
770
3
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
771
3
      if (result != TPM_RC_SUCCESS) {
772
2
        return result;
773
2
      }
774
1
      ++(*num_request_handles);
775
1
      return TPM_RC_SUCCESS;
776
0
#endif
777
0
#if IS_CC_ENABLED(PCR_Allocate)
778
34
    case TPM_CC_PCR_Allocate:
779
34
      result = TPMI_RH_PLATFORM_Unmarshal(
780
34
          (TPMI_RH_PLATFORM*)&request_handles[*num_request_handles],
781
34
          request_handle_buffer_start, request_buffer_remaining_size);
782
34
      if (result != TPM_RC_SUCCESS) {
783
5
        return result;
784
5
      }
785
29
      ++(*num_request_handles);
786
29
      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
176
    case TPM_CC_PCR_Extend:
801
176
      result = TPMI_DH_PCR_Unmarshal(
802
176
          (TPMI_DH_PCR*)&request_handles[*num_request_handles],
803
176
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
804
176
      if (result != TPM_RC_SUCCESS) {
805
29
        return result;
806
29
      }
807
147
      ++(*num_request_handles);
808
147
      return TPM_RC_SUCCESS;
809
0
#endif
810
0
#if IS_CC_ENABLED(PCR_Read)
811
167
    case TPM_CC_PCR_Read:
812
167
      return TPM_RC_SUCCESS;
813
0
#endif
814
0
#if IS_CC_ENABLED(PCR_Reset)
815
57
    case TPM_CC_PCR_Reset:
816
57
      result = TPMI_DH_PCR_Unmarshal(
817
57
          (TPMI_DH_PCR*)&request_handles[*num_request_handles],
818
57
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
819
57
      if (result != TPM_RC_SUCCESS) {
820
45
        return result;
821
45
      }
822
12
      ++(*num_request_handles);
823
12
      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
7
    case TPM_CC_PolicyAuthValue:
867
7
      result = TPMI_SH_POLICY_Unmarshal(
868
7
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
869
7
          request_handle_buffer_start, request_buffer_remaining_size);
870
7
      if (result != TPM_RC_SUCCESS) {
871
6
        return result;
872
6
      }
873
1
      ++(*num_request_handles);
874
1
      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
4
    case TPM_CC_PolicyCommandCode:
889
4
      result = TPMI_SH_POLICY_Unmarshal(
890
4
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
891
4
          request_handle_buffer_start, request_buffer_remaining_size);
892
4
      if (result != TPM_RC_SUCCESS) {
893
2
        return result;
894
2
      }
895
2
      ++(*num_request_handles);
896
2
      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
2
    case TPM_CC_PolicyGetDigest:
933
2
      result = TPMI_SH_POLICY_Unmarshal(
934
2
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
935
2
          request_handle_buffer_start, request_buffer_remaining_size);
936
2
      if (result != TPM_RC_SUCCESS) {
937
1
        return result;
938
1
      }
939
1
      ++(*num_request_handles);
940
1
      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
3
    case TPM_CC_PolicyOR:
1002
3
      result = TPMI_SH_POLICY_Unmarshal(
1003
3
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1004
3
          request_handle_buffer_start, request_buffer_remaining_size);
1005
3
      if (result != TPM_RC_SUCCESS) {
1006
2
        return result;
1007
2
      }
1008
1
      ++(*num_request_handles);
1009
1
      return TPM_RC_SUCCESS;
1010
0
#endif
1011
0
#if IS_CC_ENABLED(PolicyPCR)
1012
4
    case TPM_CC_PolicyPCR:
1013
4
      result = TPMI_SH_POLICY_Unmarshal(
1014
4
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1015
4
          request_handle_buffer_start, request_buffer_remaining_size);
1016
4
      if (result != TPM_RC_SUCCESS) {
1017
2
        return result;
1018
2
      }
1019
2
      ++(*num_request_handles);
1020
2
      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
5
    case TPM_CC_PolicyRestart:
1046
5
      result = TPMI_SH_POLICY_Unmarshal(
1047
5
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1048
5
          request_handle_buffer_start, request_buffer_remaining_size);
1049
5
      if (result != TPM_RC_SUCCESS) {
1050
3
        return result;
1051
3
      }
1052
2
      ++(*num_request_handles);
1053
2
      return TPM_RC_SUCCESS;
1054
0
#endif
1055
0
#if IS_CC_ENABLED(PolicySecret)
1056
293
    case TPM_CC_PolicySecret:
1057
293
      result = TPMI_DH_ENTITY_Unmarshal(
1058
293
          (TPMI_DH_ENTITY*)&request_handles[*num_request_handles],
1059
293
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1060
293
      if (result != TPM_RC_SUCCESS) {
1061
215
        return result;
1062
215
      }
1063
78
      ++(*num_request_handles);
1064
78
      result = TPMI_SH_POLICY_Unmarshal(
1065
78
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1066
78
          request_handle_buffer_start, request_buffer_remaining_size);
1067
78
      if (result != TPM_RC_SUCCESS) {
1068
71
        return result;
1069
71
      }
1070
7
      ++(*num_request_handles);
1071
7
      return TPM_RC_SUCCESS;
1072
0
#endif
1073
0
#if IS_CC_ENABLED(PolicySigned)
1074
9
    case TPM_CC_PolicySigned:
1075
9
      result = TPMI_DH_OBJECT_Unmarshal(
1076
9
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1077
9
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1078
9
      if (result != TPM_RC_SUCCESS) {
1079
6
        return result;
1080
6
      }
1081
3
      ++(*num_request_handles);
1082
3
      result = TPMI_SH_POLICY_Unmarshal(
1083
3
          (TPMI_SH_POLICY*)&request_handles[*num_request_handles],
1084
3
          request_handle_buffer_start, request_buffer_remaining_size);
1085
3
      if (result != TPM_RC_SUCCESS) {
1086
2
        return result;
1087
2
      }
1088
1
      ++(*num_request_handles);
1089
1
      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
114
    case TPM_CC_Quote:
1104
114
      result = TPMI_DH_OBJECT_Unmarshal(
1105
114
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1106
114
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1107
114
      if (result != TPM_RC_SUCCESS) {
1108
4
        return result;
1109
4
      }
1110
110
      ++(*num_request_handles);
1111
110
      return TPM_RC_SUCCESS;
1112
0
#endif
1113
0
#if IS_CC_ENABLED(RSA_Decrypt)
1114
11
    case TPM_CC_RSA_Decrypt:
1115
11
      result = TPMI_DH_OBJECT_Unmarshal(
1116
11
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1117
11
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1118
11
      if (result != TPM_RC_SUCCESS) {
1119
7
        return result;
1120
7
      }
1121
4
      ++(*num_request_handles);
1122
4
      return TPM_RC_SUCCESS;
1123
0
#endif
1124
0
#if IS_CC_ENABLED(RSA_Encrypt)
1125
6
    case TPM_CC_RSA_Encrypt:
1126
6
      result = TPMI_DH_OBJECT_Unmarshal(
1127
6
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1128
6
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1129
6
      if (result != TPM_RC_SUCCESS) {
1130
4
        return result;
1131
4
      }
1132
2
      ++(*num_request_handles);
1133
2
      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
4
    case TPM_CC_ReadPublic:
1141
4
      result = TPMI_DH_OBJECT_Unmarshal(
1142
4
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1143
4
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1144
4
      if (result != TPM_RC_SUCCESS) {
1145
1
        return result;
1146
1
      }
1147
3
      ++(*num_request_handles);
1148
3
      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
23
    case TPM_CC_SelfTest:
1170
23
      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
74
    case TPM_CC_Shutdown:
1229
74
      return TPM_RC_SUCCESS;
1230
0
#endif
1231
0
#if IS_CC_ENABLED(Sign)
1232
7
    case TPM_CC_Sign:
1233
7
      result = TPMI_DH_OBJECT_Unmarshal(
1234
7
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1235
7
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1236
7
      if (result != TPM_RC_SUCCESS) {
1237
5
        return result;
1238
5
      }
1239
2
      ++(*num_request_handles);
1240
2
      return TPM_RC_SUCCESS;
1241
0
#endif
1242
0
#if IS_CC_ENABLED(StartAuthSession)
1243
150
    case TPM_CC_StartAuthSession:
1244
150
      result = TPMI_DH_OBJECT_Unmarshal(
1245
150
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1246
150
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1247
150
      if (result != TPM_RC_SUCCESS) {
1248
4
        return result;
1249
4
      }
1250
146
      ++(*num_request_handles);
1251
146
      result = TPMI_DH_ENTITY_Unmarshal(
1252
146
          (TPMI_DH_ENTITY*)&request_handles[*num_request_handles],
1253
146
          request_handle_buffer_start, request_buffer_remaining_size, TRUE);
1254
146
      if (result != TPM_RC_SUCCESS) {
1255
2
        return result;
1256
2
      }
1257
144
      ++(*num_request_handles);
1258
144
      return TPM_RC_SUCCESS;
1259
0
#endif
1260
0
#if IS_CC_ENABLED(Startup)
1261
5.51k
    case TPM_CC_Startup:
1262
5.51k
      return TPM_RC_SUCCESS;
1263
0
#endif
1264
0
#if IS_CC_ENABLED(StirRandom)
1265
51
    case TPM_CC_StirRandom:
1266
51
      return TPM_RC_SUCCESS;
1267
0
#endif
1268
0
#if IS_CC_ENABLED(TestParms)
1269
300
    case TPM_CC_TestParms:
1270
300
      return TPM_RC_SUCCESS;
1271
0
#endif
1272
0
#if IS_CC_ENABLED(Unseal)
1273
6
    case TPM_CC_Unseal:
1274
6
      result = TPMI_DH_OBJECT_Unmarshal(
1275
6
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1276
6
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1277
6
      if (result != TPM_RC_SUCCESS) {
1278
3
        return result;
1279
3
      }
1280
3
      ++(*num_request_handles);
1281
3
      return TPM_RC_SUCCESS;
1282
0
#endif
1283
0
#if IS_CC_ENABLED(VerifySignature)
1284
7
    case TPM_CC_VerifySignature:
1285
7
      result = TPMI_DH_OBJECT_Unmarshal(
1286
7
          (TPMI_DH_OBJECT*)&request_handles[*num_request_handles],
1287
7
          request_handle_buffer_start, request_buffer_remaining_size, FALSE);
1288
7
      if (result != TPM_RC_SUCCESS) {
1289
4
        return result;
1290
4
      }
1291
3
      ++(*num_request_handles);
1292
3
      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
10.7k
  }
1308
10.7k
}