xref: /aosp_15_r20/external/tpm2-tss/test/unit/esys-sequence-finish.c (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /*******************************************************************************
3*758e9fbaSOystein Eftevaag  * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
4*758e9fbaSOystein Eftevaag  * All rights reserved.
5*758e9fbaSOystein Eftevaag  *******************************************************************************/
6*758e9fbaSOystein Eftevaag 
7*758e9fbaSOystein Eftevaag #ifdef HAVE_CONFIG_H
8*758e9fbaSOystein Eftevaag #include <config.h>
9*758e9fbaSOystein Eftevaag #endif
10*758e9fbaSOystein Eftevaag 
11*758e9fbaSOystein Eftevaag #include <stdarg.h>
12*758e9fbaSOystein Eftevaag #include <stdlib.h>
13*758e9fbaSOystein Eftevaag #include <inttypes.h>
14*758e9fbaSOystein Eftevaag #include <string.h>
15*758e9fbaSOystein Eftevaag 
16*758e9fbaSOystein Eftevaag #include <setjmp.h>
17*758e9fbaSOystein Eftevaag #include <cmocka.h>
18*758e9fbaSOystein Eftevaag 
19*758e9fbaSOystein Eftevaag #include "tss2_esys.h"
20*758e9fbaSOystein Eftevaag 
21*758e9fbaSOystein Eftevaag #include "tss2-esys/esys_iutil.h"
22*758e9fbaSOystein Eftevaag #define LOGMODULE tests
23*758e9fbaSOystein Eftevaag #include "util/log.h"
24*758e9fbaSOystein Eftevaag #include "util/aux_util.h"
25*758e9fbaSOystein Eftevaag 
26*758e9fbaSOystein Eftevaag /*
27*758e9fbaSOystein Eftevaag  * Tests whether all ESAPI finish calls handle wrong internal states with the correct
28*758e9fbaSOystein Eftevaag  * error response TSS2_ESYS_RC_BAD_SEQUENCE.
29*758e9fbaSOystein Eftevaag  */
30*758e9fbaSOystein Eftevaag 
31*758e9fbaSOystein Eftevaag static TSS2_RC
tcti_failure_transmit(TSS2_TCTI_CONTEXT * tctiContext,size_t size,const uint8_t * buffer)32*758e9fbaSOystein Eftevaag tcti_failure_transmit(TSS2_TCTI_CONTEXT * tctiContext,
33*758e9fbaSOystein Eftevaag                       size_t size, const uint8_t * buffer)
34*758e9fbaSOystein Eftevaag {
35*758e9fbaSOystein Eftevaag     (void)(tctiContext);
36*758e9fbaSOystein Eftevaag     (void)(size);
37*758e9fbaSOystein Eftevaag     (void)(buffer);
38*758e9fbaSOystein Eftevaag 
39*758e9fbaSOystein Eftevaag     return TSS2_RC_SUCCESS;
40*758e9fbaSOystein Eftevaag }
41*758e9fbaSOystein Eftevaag 
42*758e9fbaSOystein Eftevaag const uint8_t failure_response[] = {
43*758e9fbaSOystein Eftevaag     0x80, 0x01,                 /* TPM_ST_NO_SESSION */
44*758e9fbaSOystein Eftevaag     0x00, 0x00, 0x00, 0x0A,     /* Response Size 10 */
45*758e9fbaSOystein Eftevaag     0x00, 0x00, 0x01, 0x01      /* TPM_RC_FAILURE */
46*758e9fbaSOystein Eftevaag };
47*758e9fbaSOystein Eftevaag 
48*758e9fbaSOystein Eftevaag static TSS2_RC
tcti_failure_receive(TSS2_TCTI_CONTEXT * tctiContext,size_t * response_size,uint8_t * response_buffer,int32_t timeout)49*758e9fbaSOystein Eftevaag tcti_failure_receive(TSS2_TCTI_CONTEXT * tctiContext,
50*758e9fbaSOystein Eftevaag                      size_t * response_size,
51*758e9fbaSOystein Eftevaag                      uint8_t * response_buffer, int32_t timeout)
52*758e9fbaSOystein Eftevaag {
53*758e9fbaSOystein Eftevaag     *response_size = sizeof(failure_response);
54*758e9fbaSOystein Eftevaag     if (response_buffer != NULL)
55*758e9fbaSOystein Eftevaag         memcpy(response_buffer, &failure_response[0], sizeof(failure_response));
56*758e9fbaSOystein Eftevaag 
57*758e9fbaSOystein Eftevaag     return TSS2_RC_SUCCESS;
58*758e9fbaSOystein Eftevaag }
59*758e9fbaSOystein Eftevaag 
60*758e9fbaSOystein Eftevaag /**
61*758e9fbaSOystein Eftevaag  * Prepare ESAPI context with a reference to SAPI and TCTI context.
62*758e9fbaSOystein Eftevaag  */
63*758e9fbaSOystein Eftevaag static int
esys_unit_setup(void ** state)64*758e9fbaSOystein Eftevaag esys_unit_setup(void **state)
65*758e9fbaSOystein Eftevaag {
66*758e9fbaSOystein Eftevaag     TSS2_RC r;
67*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context;
68*758e9fbaSOystein Eftevaag 
69*758e9fbaSOystein Eftevaag     /* This is a fake tcti context */
70*758e9fbaSOystein Eftevaag     TSS2_TCTI_CONTEXT_COMMON_V1 *tcti =
71*758e9fbaSOystein Eftevaag         calloc(1, sizeof(TSS2_TCTI_CONTEXT_COMMON_V1));
72*758e9fbaSOystein Eftevaag     tcti->version = 1;
73*758e9fbaSOystein Eftevaag     TSS2_TCTI_TRANSMIT (tcti) = tcti_failure_transmit;
74*758e9fbaSOystein Eftevaag     TSS2_TCTI_RECEIVE (tcti) = tcti_failure_receive;
75*758e9fbaSOystein Eftevaag 
76*758e9fbaSOystein Eftevaag     r = Esys_Initialize(&esys_context, (TSS2_TCTI_CONTEXT *) tcti, NULL);
77*758e9fbaSOystein Eftevaag     assert_int_equal(r, TSS2_RC_SUCCESS);
78*758e9fbaSOystein Eftevaag     *state = (void *)esys_context;
79*758e9fbaSOystein Eftevaag     return 0;
80*758e9fbaSOystein Eftevaag }
81*758e9fbaSOystein Eftevaag 
82*758e9fbaSOystein Eftevaag /**
83*758e9fbaSOystein Eftevaag  * Free  ESAPI, SAPI and TCTI context.
84*758e9fbaSOystein Eftevaag  */
85*758e9fbaSOystein Eftevaag static int
esys_unit_teardown(void ** state)86*758e9fbaSOystein Eftevaag esys_unit_teardown(void **state)
87*758e9fbaSOystein Eftevaag {
88*758e9fbaSOystein Eftevaag     TSS2_RC r;
89*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
90*758e9fbaSOystein Eftevaag     TSS2_TCTI_CONTEXT *tcti;
91*758e9fbaSOystein Eftevaag     r = Esys_GetTcti(esys_context, &tcti);
92*758e9fbaSOystein Eftevaag     assert_int_equal(r, TSS2_RC_SUCCESS);
93*758e9fbaSOystein Eftevaag     Esys_Finalize(&esys_context);
94*758e9fbaSOystein Eftevaag     free(tcti);
95*758e9fbaSOystein Eftevaag     return 0;
96*758e9fbaSOystein Eftevaag }
97*758e9fbaSOystein Eftevaag 
98*758e9fbaSOystein Eftevaag void
check_Startup(void ** state)99*758e9fbaSOystein Eftevaag check_Startup(void **state)
100*758e9fbaSOystein Eftevaag {
101*758e9fbaSOystein Eftevaag     TSS2_RC r;
102*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
103*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
104*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
105*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
106*758e9fbaSOystein Eftevaag     };
107*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
108*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
109*758e9fbaSOystein Eftevaag         r = Esys_Startup_Finish(esys_context);
110*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
111*758e9fbaSOystein Eftevaag     }
112*758e9fbaSOystein Eftevaag }
113*758e9fbaSOystein Eftevaag 
114*758e9fbaSOystein Eftevaag void
check_Shutdown(void ** state)115*758e9fbaSOystein Eftevaag check_Shutdown(void **state)
116*758e9fbaSOystein Eftevaag {
117*758e9fbaSOystein Eftevaag     TSS2_RC r;
118*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
119*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
120*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
121*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
122*758e9fbaSOystein Eftevaag     };
123*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
124*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
125*758e9fbaSOystein Eftevaag         r = Esys_Shutdown_Finish(esys_context);
126*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
127*758e9fbaSOystein Eftevaag     }
128*758e9fbaSOystein Eftevaag }
129*758e9fbaSOystein Eftevaag 
130*758e9fbaSOystein Eftevaag void
check_SelfTest(void ** state)131*758e9fbaSOystein Eftevaag check_SelfTest(void **state)
132*758e9fbaSOystein Eftevaag {
133*758e9fbaSOystein Eftevaag     TSS2_RC r;
134*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
135*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
136*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
137*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
138*758e9fbaSOystein Eftevaag     };
139*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
140*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
141*758e9fbaSOystein Eftevaag         r = Esys_SelfTest_Finish(esys_context);
142*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
143*758e9fbaSOystein Eftevaag     }
144*758e9fbaSOystein Eftevaag }
145*758e9fbaSOystein Eftevaag 
146*758e9fbaSOystein Eftevaag void
check_IncrementalSelfTest(void ** state)147*758e9fbaSOystein Eftevaag check_IncrementalSelfTest(void **state)
148*758e9fbaSOystein Eftevaag {
149*758e9fbaSOystein Eftevaag     TSS2_RC r;
150*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
151*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
152*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
153*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
154*758e9fbaSOystein Eftevaag     };
155*758e9fbaSOystein Eftevaag     TPML_ALG *toDoList;
156*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
157*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
158*758e9fbaSOystein Eftevaag         r = Esys_IncrementalSelfTest_Finish(esys_context, &toDoList);
159*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
160*758e9fbaSOystein Eftevaag     }
161*758e9fbaSOystein Eftevaag }
162*758e9fbaSOystein Eftevaag 
163*758e9fbaSOystein Eftevaag void
check_GetTestResult(void ** state)164*758e9fbaSOystein Eftevaag check_GetTestResult(void **state)
165*758e9fbaSOystein Eftevaag {
166*758e9fbaSOystein Eftevaag     TSS2_RC r;
167*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
168*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
169*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
170*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
171*758e9fbaSOystein Eftevaag     };
172*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER *outData;
173*758e9fbaSOystein Eftevaag     TPM2_RC testResult;
174*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
175*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
176*758e9fbaSOystein Eftevaag         r = Esys_GetTestResult_Finish(esys_context, &outData, &testResult);
177*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
178*758e9fbaSOystein Eftevaag     }
179*758e9fbaSOystein Eftevaag }
180*758e9fbaSOystein Eftevaag 
181*758e9fbaSOystein Eftevaag void
check_StartAuthSession(void ** state)182*758e9fbaSOystein Eftevaag check_StartAuthSession(void **state)
183*758e9fbaSOystein Eftevaag {
184*758e9fbaSOystein Eftevaag     TSS2_RC r;
185*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
186*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
187*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
188*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
189*758e9fbaSOystein Eftevaag     };
190*758e9fbaSOystein Eftevaag     ESYS_TR sessionHandle_handle;
191*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
192*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
193*758e9fbaSOystein Eftevaag         r = Esys_StartAuthSession_Finish(esys_context,
194*758e9fbaSOystein Eftevaag                                          &sessionHandle_handle);
195*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
196*758e9fbaSOystein Eftevaag     }
197*758e9fbaSOystein Eftevaag }
198*758e9fbaSOystein Eftevaag 
199*758e9fbaSOystein Eftevaag void
check_PolicyRestart(void ** state)200*758e9fbaSOystein Eftevaag check_PolicyRestart(void **state)
201*758e9fbaSOystein Eftevaag {
202*758e9fbaSOystein Eftevaag     TSS2_RC r;
203*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
204*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
205*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
206*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
207*758e9fbaSOystein Eftevaag     };
208*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
209*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
210*758e9fbaSOystein Eftevaag         r = Esys_PolicyRestart_Finish(esys_context);
211*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
212*758e9fbaSOystein Eftevaag     }
213*758e9fbaSOystein Eftevaag }
214*758e9fbaSOystein Eftevaag 
215*758e9fbaSOystein Eftevaag void
check_Create(void ** state)216*758e9fbaSOystein Eftevaag check_Create(void **state)
217*758e9fbaSOystein Eftevaag {
218*758e9fbaSOystein Eftevaag     TSS2_RC r;
219*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
220*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
221*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
222*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
223*758e9fbaSOystein Eftevaag     };
224*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE *outPrivate;
225*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC *outPublic;
226*758e9fbaSOystein Eftevaag     TPM2B_CREATION_DATA *creationData;
227*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *creationHash;
228*758e9fbaSOystein Eftevaag     TPMT_TK_CREATION *creationTicket;
229*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
230*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
231*758e9fbaSOystein Eftevaag         r = Esys_Create_Finish(esys_context,
232*758e9fbaSOystein Eftevaag                                &outPrivate,
233*758e9fbaSOystein Eftevaag                                &outPublic,
234*758e9fbaSOystein Eftevaag                                &creationData, &creationHash, &creationTicket);
235*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
236*758e9fbaSOystein Eftevaag     }
237*758e9fbaSOystein Eftevaag }
238*758e9fbaSOystein Eftevaag 
239*758e9fbaSOystein Eftevaag void
check_Load(void ** state)240*758e9fbaSOystein Eftevaag check_Load(void **state)
241*758e9fbaSOystein Eftevaag {
242*758e9fbaSOystein Eftevaag     TSS2_RC r;
243*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
244*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
245*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
246*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
247*758e9fbaSOystein Eftevaag     };
248*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle_handle;
249*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
250*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
251*758e9fbaSOystein Eftevaag         r = Esys_Load_Finish(esys_context, &objectHandle_handle);
252*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
253*758e9fbaSOystein Eftevaag     }
254*758e9fbaSOystein Eftevaag }
255*758e9fbaSOystein Eftevaag 
256*758e9fbaSOystein Eftevaag void
check_LoadExternal(void ** state)257*758e9fbaSOystein Eftevaag check_LoadExternal(void **state)
258*758e9fbaSOystein Eftevaag {
259*758e9fbaSOystein Eftevaag     TSS2_RC r;
260*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
261*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
262*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
263*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
264*758e9fbaSOystein Eftevaag     };
265*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle_handle;
266*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
267*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
268*758e9fbaSOystein Eftevaag         r = Esys_LoadExternal_Finish(esys_context, &objectHandle_handle);
269*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
270*758e9fbaSOystein Eftevaag     }
271*758e9fbaSOystein Eftevaag }
272*758e9fbaSOystein Eftevaag 
273*758e9fbaSOystein Eftevaag void
check_ReadPublic(void ** state)274*758e9fbaSOystein Eftevaag check_ReadPublic(void **state)
275*758e9fbaSOystein Eftevaag {
276*758e9fbaSOystein Eftevaag     TSS2_RC r;
277*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
278*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
279*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
280*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
281*758e9fbaSOystein Eftevaag     };
282*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC *outPublic;
283*758e9fbaSOystein Eftevaag     TPM2B_NAME *name;
284*758e9fbaSOystein Eftevaag     TPM2B_NAME *qualifiedName;
285*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
286*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
287*758e9fbaSOystein Eftevaag         r = Esys_ReadPublic_Finish(esys_context,
288*758e9fbaSOystein Eftevaag                                    &outPublic, &name, &qualifiedName);
289*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
290*758e9fbaSOystein Eftevaag     }
291*758e9fbaSOystein Eftevaag }
292*758e9fbaSOystein Eftevaag 
293*758e9fbaSOystein Eftevaag void
check_ActivateCredential(void ** state)294*758e9fbaSOystein Eftevaag check_ActivateCredential(void **state)
295*758e9fbaSOystein Eftevaag {
296*758e9fbaSOystein Eftevaag     TSS2_RC r;
297*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
298*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
299*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
300*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
301*758e9fbaSOystein Eftevaag     };
302*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *certInfo;
303*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
304*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
305*758e9fbaSOystein Eftevaag         r = Esys_ActivateCredential_Finish(esys_context, &certInfo);
306*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
307*758e9fbaSOystein Eftevaag     }
308*758e9fbaSOystein Eftevaag }
309*758e9fbaSOystein Eftevaag 
310*758e9fbaSOystein Eftevaag void
check_MakeCredential(void ** state)311*758e9fbaSOystein Eftevaag check_MakeCredential(void **state)
312*758e9fbaSOystein Eftevaag {
313*758e9fbaSOystein Eftevaag     TSS2_RC r;
314*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
315*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
316*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
317*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
318*758e9fbaSOystein Eftevaag     };
319*758e9fbaSOystein Eftevaag     TPM2B_ID_OBJECT *credentialBlob;
320*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET *secret;
321*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
322*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
323*758e9fbaSOystein Eftevaag         r = Esys_MakeCredential_Finish(esys_context, &credentialBlob, &secret);
324*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
325*758e9fbaSOystein Eftevaag     }
326*758e9fbaSOystein Eftevaag }
327*758e9fbaSOystein Eftevaag 
328*758e9fbaSOystein Eftevaag void
check_Unseal(void ** state)329*758e9fbaSOystein Eftevaag check_Unseal(void **state)
330*758e9fbaSOystein Eftevaag {
331*758e9fbaSOystein Eftevaag     TSS2_RC r;
332*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
333*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
334*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
335*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
336*758e9fbaSOystein Eftevaag     };
337*758e9fbaSOystein Eftevaag     TPM2B_SENSITIVE_DATA *outData;
338*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
339*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
340*758e9fbaSOystein Eftevaag         r = Esys_Unseal_Finish(esys_context, &outData);
341*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
342*758e9fbaSOystein Eftevaag     }
343*758e9fbaSOystein Eftevaag }
344*758e9fbaSOystein Eftevaag 
345*758e9fbaSOystein Eftevaag void
check_ObjectChangeAuth(void ** state)346*758e9fbaSOystein Eftevaag check_ObjectChangeAuth(void **state)
347*758e9fbaSOystein Eftevaag {
348*758e9fbaSOystein Eftevaag     TSS2_RC r;
349*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
350*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
351*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
352*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
353*758e9fbaSOystein Eftevaag     };
354*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE *outPrivate;
355*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
356*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
357*758e9fbaSOystein Eftevaag         r = Esys_ObjectChangeAuth_Finish(esys_context, &outPrivate);
358*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
359*758e9fbaSOystein Eftevaag     }
360*758e9fbaSOystein Eftevaag }
361*758e9fbaSOystein Eftevaag 
362*758e9fbaSOystein Eftevaag void
check_CreateLoaded(void ** state)363*758e9fbaSOystein Eftevaag check_CreateLoaded(void **state)
364*758e9fbaSOystein Eftevaag {
365*758e9fbaSOystein Eftevaag     TSS2_RC r;
366*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
367*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
368*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
369*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
370*758e9fbaSOystein Eftevaag     };
371*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle_handle;
372*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE *outPrivate;
373*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC *outPublic;
374*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
375*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
376*758e9fbaSOystein Eftevaag         r = Esys_CreateLoaded_Finish(esys_context,
377*758e9fbaSOystein Eftevaag                                      &objectHandle_handle,
378*758e9fbaSOystein Eftevaag                                      &outPrivate, &outPublic);
379*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
380*758e9fbaSOystein Eftevaag     }
381*758e9fbaSOystein Eftevaag }
382*758e9fbaSOystein Eftevaag 
383*758e9fbaSOystein Eftevaag void
check_Duplicate(void ** state)384*758e9fbaSOystein Eftevaag check_Duplicate(void **state)
385*758e9fbaSOystein Eftevaag {
386*758e9fbaSOystein Eftevaag     TSS2_RC r;
387*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
388*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
389*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
390*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
391*758e9fbaSOystein Eftevaag     };
392*758e9fbaSOystein Eftevaag     TPM2B_DATA *encryptionKeyOut;
393*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE *duplicate;
394*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET *outSymSeed;
395*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
396*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
397*758e9fbaSOystein Eftevaag         r = Esys_Duplicate_Finish(esys_context,
398*758e9fbaSOystein Eftevaag                                   &encryptionKeyOut, &duplicate, &outSymSeed);
399*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
400*758e9fbaSOystein Eftevaag     }
401*758e9fbaSOystein Eftevaag }
402*758e9fbaSOystein Eftevaag 
403*758e9fbaSOystein Eftevaag void
check_Rewrap(void ** state)404*758e9fbaSOystein Eftevaag check_Rewrap(void **state)
405*758e9fbaSOystein Eftevaag {
406*758e9fbaSOystein Eftevaag     TSS2_RC r;
407*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
408*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
409*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
410*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
411*758e9fbaSOystein Eftevaag     };
412*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE *outDuplicate;
413*758e9fbaSOystein Eftevaag     TPM2B_ENCRYPTED_SECRET *outSymSeed;
414*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
415*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
416*758e9fbaSOystein Eftevaag         r = Esys_Rewrap_Finish(esys_context, &outDuplicate, &outSymSeed);
417*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
418*758e9fbaSOystein Eftevaag     }
419*758e9fbaSOystein Eftevaag }
420*758e9fbaSOystein Eftevaag 
421*758e9fbaSOystein Eftevaag void
check_Import(void ** state)422*758e9fbaSOystein Eftevaag check_Import(void **state)
423*758e9fbaSOystein Eftevaag {
424*758e9fbaSOystein Eftevaag     TSS2_RC r;
425*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
426*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
427*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
428*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
429*758e9fbaSOystein Eftevaag     };
430*758e9fbaSOystein Eftevaag     TPM2B_PRIVATE *outPrivate;
431*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
432*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
433*758e9fbaSOystein Eftevaag         r = Esys_Import_Finish(esys_context, &outPrivate);
434*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
435*758e9fbaSOystein Eftevaag     }
436*758e9fbaSOystein Eftevaag }
437*758e9fbaSOystein Eftevaag 
438*758e9fbaSOystein Eftevaag void
check_RSA_Encrypt(void ** state)439*758e9fbaSOystein Eftevaag check_RSA_Encrypt(void **state)
440*758e9fbaSOystein Eftevaag {
441*758e9fbaSOystein Eftevaag     TSS2_RC r;
442*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
443*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
444*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
445*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
446*758e9fbaSOystein Eftevaag     };
447*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC_KEY_RSA *outData;
448*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
449*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
450*758e9fbaSOystein Eftevaag         r = Esys_RSA_Encrypt_Finish(esys_context, &outData);
451*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
452*758e9fbaSOystein Eftevaag     }
453*758e9fbaSOystein Eftevaag }
454*758e9fbaSOystein Eftevaag 
455*758e9fbaSOystein Eftevaag void
check_RSA_Decrypt(void ** state)456*758e9fbaSOystein Eftevaag check_RSA_Decrypt(void **state)
457*758e9fbaSOystein Eftevaag {
458*758e9fbaSOystein Eftevaag     TSS2_RC r;
459*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
460*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
461*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
462*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
463*758e9fbaSOystein Eftevaag     };
464*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC_KEY_RSA *message;
465*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
466*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
467*758e9fbaSOystein Eftevaag         r = Esys_RSA_Decrypt_Finish(esys_context, &message);
468*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
469*758e9fbaSOystein Eftevaag     }
470*758e9fbaSOystein Eftevaag }
471*758e9fbaSOystein Eftevaag 
472*758e9fbaSOystein Eftevaag void
check_ECDH_KeyGen(void ** state)473*758e9fbaSOystein Eftevaag check_ECDH_KeyGen(void **state)
474*758e9fbaSOystein Eftevaag {
475*758e9fbaSOystein Eftevaag     TSS2_RC r;
476*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
477*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
478*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
479*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
480*758e9fbaSOystein Eftevaag     };
481*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *zPoint;
482*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *pubPoint;
483*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
484*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
485*758e9fbaSOystein Eftevaag         r = Esys_ECDH_KeyGen_Finish(esys_context, &zPoint, &pubPoint);
486*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
487*758e9fbaSOystein Eftevaag     }
488*758e9fbaSOystein Eftevaag }
489*758e9fbaSOystein Eftevaag 
490*758e9fbaSOystein Eftevaag void
check_ECDH_ZGen(void ** state)491*758e9fbaSOystein Eftevaag check_ECDH_ZGen(void **state)
492*758e9fbaSOystein Eftevaag {
493*758e9fbaSOystein Eftevaag     TSS2_RC r;
494*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
495*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
496*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
497*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
498*758e9fbaSOystein Eftevaag     };
499*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *outPoint;
500*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
501*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
502*758e9fbaSOystein Eftevaag         r = Esys_ECDH_ZGen_Finish(esys_context, &outPoint);
503*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
504*758e9fbaSOystein Eftevaag     }
505*758e9fbaSOystein Eftevaag }
506*758e9fbaSOystein Eftevaag 
507*758e9fbaSOystein Eftevaag void
check_ECC_Parameters(void ** state)508*758e9fbaSOystein Eftevaag check_ECC_Parameters(void **state)
509*758e9fbaSOystein Eftevaag {
510*758e9fbaSOystein Eftevaag     TSS2_RC r;
511*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
512*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
513*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
514*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
515*758e9fbaSOystein Eftevaag     };
516*758e9fbaSOystein Eftevaag     TPMS_ALGORITHM_DETAIL_ECC *parameters;
517*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
518*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
519*758e9fbaSOystein Eftevaag         r = Esys_ECC_Parameters_Finish(esys_context, &parameters);
520*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
521*758e9fbaSOystein Eftevaag     }
522*758e9fbaSOystein Eftevaag }
523*758e9fbaSOystein Eftevaag 
524*758e9fbaSOystein Eftevaag void
check_ZGen_2Phase(void ** state)525*758e9fbaSOystein Eftevaag check_ZGen_2Phase(void **state)
526*758e9fbaSOystein Eftevaag {
527*758e9fbaSOystein Eftevaag     TSS2_RC r;
528*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
529*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
530*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
531*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
532*758e9fbaSOystein Eftevaag     };
533*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *outZ1;
534*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *outZ2;
535*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
536*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
537*758e9fbaSOystein Eftevaag         r = Esys_ZGen_2Phase_Finish(esys_context, &outZ1, &outZ2);
538*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
539*758e9fbaSOystein Eftevaag     }
540*758e9fbaSOystein Eftevaag }
541*758e9fbaSOystein Eftevaag 
542*758e9fbaSOystein Eftevaag void
check_EncryptDecrypt(void ** state)543*758e9fbaSOystein Eftevaag check_EncryptDecrypt(void **state)
544*758e9fbaSOystein Eftevaag {
545*758e9fbaSOystein Eftevaag     TSS2_RC r;
546*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
547*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
548*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
549*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
550*758e9fbaSOystein Eftevaag     };
551*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER *outData;
552*758e9fbaSOystein Eftevaag     TPM2B_IV *ivOut;
553*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
554*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
555*758e9fbaSOystein Eftevaag         r = Esys_EncryptDecrypt_Finish(esys_context, &outData, &ivOut);
556*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
557*758e9fbaSOystein Eftevaag     }
558*758e9fbaSOystein Eftevaag }
559*758e9fbaSOystein Eftevaag 
560*758e9fbaSOystein Eftevaag void
check_EncryptDecrypt2(void ** state)561*758e9fbaSOystein Eftevaag check_EncryptDecrypt2(void **state)
562*758e9fbaSOystein Eftevaag {
563*758e9fbaSOystein Eftevaag     TSS2_RC r;
564*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
565*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
566*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
567*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
568*758e9fbaSOystein Eftevaag     };
569*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER *outData;
570*758e9fbaSOystein Eftevaag     TPM2B_IV *ivOut;
571*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
572*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
573*758e9fbaSOystein Eftevaag         r = Esys_EncryptDecrypt2_Finish(esys_context, &outData, &ivOut);
574*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
575*758e9fbaSOystein Eftevaag     }
576*758e9fbaSOystein Eftevaag }
577*758e9fbaSOystein Eftevaag 
578*758e9fbaSOystein Eftevaag void
check_Hash(void ** state)579*758e9fbaSOystein Eftevaag check_Hash(void **state)
580*758e9fbaSOystein Eftevaag {
581*758e9fbaSOystein Eftevaag     TSS2_RC r;
582*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
583*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
584*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
585*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
586*758e9fbaSOystein Eftevaag     };
587*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *outHash;
588*758e9fbaSOystein Eftevaag     TPMT_TK_HASHCHECK *validation;
589*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
590*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
591*758e9fbaSOystein Eftevaag         r = Esys_Hash_Finish(esys_context, &outHash, &validation);
592*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
593*758e9fbaSOystein Eftevaag     }
594*758e9fbaSOystein Eftevaag }
595*758e9fbaSOystein Eftevaag 
596*758e9fbaSOystein Eftevaag void
check_HMAC(void ** state)597*758e9fbaSOystein Eftevaag check_HMAC(void **state)
598*758e9fbaSOystein Eftevaag {
599*758e9fbaSOystein Eftevaag     TSS2_RC r;
600*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
601*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
602*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
603*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
604*758e9fbaSOystein Eftevaag     };
605*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *outHMAC;
606*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
607*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
608*758e9fbaSOystein Eftevaag         r = Esys_HMAC_Finish(esys_context, &outHMAC);
609*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
610*758e9fbaSOystein Eftevaag     }
611*758e9fbaSOystein Eftevaag }
612*758e9fbaSOystein Eftevaag 
613*758e9fbaSOystein Eftevaag void
check_GetRandom(void ** state)614*758e9fbaSOystein Eftevaag check_GetRandom(void **state)
615*758e9fbaSOystein Eftevaag {
616*758e9fbaSOystein Eftevaag     TSS2_RC r;
617*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
618*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
619*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
620*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
621*758e9fbaSOystein Eftevaag     };
622*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *randomBytes;
623*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
624*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
625*758e9fbaSOystein Eftevaag         r = Esys_GetRandom_Finish(esys_context, &randomBytes);
626*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
627*758e9fbaSOystein Eftevaag     }
628*758e9fbaSOystein Eftevaag }
629*758e9fbaSOystein Eftevaag 
630*758e9fbaSOystein Eftevaag void
check_StirRandom(void ** state)631*758e9fbaSOystein Eftevaag check_StirRandom(void **state)
632*758e9fbaSOystein Eftevaag {
633*758e9fbaSOystein Eftevaag     TSS2_RC r;
634*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
635*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
636*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
637*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
638*758e9fbaSOystein Eftevaag     };
639*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
640*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
641*758e9fbaSOystein Eftevaag         r = Esys_StirRandom_Finish(esys_context);
642*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
643*758e9fbaSOystein Eftevaag     }
644*758e9fbaSOystein Eftevaag }
645*758e9fbaSOystein Eftevaag 
646*758e9fbaSOystein Eftevaag void
check_HMAC_Start(void ** state)647*758e9fbaSOystein Eftevaag check_HMAC_Start(void **state)
648*758e9fbaSOystein Eftevaag {
649*758e9fbaSOystein Eftevaag     TSS2_RC r;
650*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
651*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
652*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
653*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
654*758e9fbaSOystein Eftevaag     };
655*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle_handle;
656*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
657*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
658*758e9fbaSOystein Eftevaag         r = Esys_HMAC_Start_Finish(esys_context, &sequenceHandle_handle);
659*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
660*758e9fbaSOystein Eftevaag     }
661*758e9fbaSOystein Eftevaag }
662*758e9fbaSOystein Eftevaag 
663*758e9fbaSOystein Eftevaag void
check_HashSequenceStart(void ** state)664*758e9fbaSOystein Eftevaag check_HashSequenceStart(void **state)
665*758e9fbaSOystein Eftevaag {
666*758e9fbaSOystein Eftevaag     TSS2_RC r;
667*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
668*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
669*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
670*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
671*758e9fbaSOystein Eftevaag     };
672*758e9fbaSOystein Eftevaag     ESYS_TR sequenceHandle_handle;
673*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
674*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
675*758e9fbaSOystein Eftevaag         r = Esys_HashSequenceStart_Finish(esys_context, &sequenceHandle_handle);
676*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
677*758e9fbaSOystein Eftevaag     }
678*758e9fbaSOystein Eftevaag }
679*758e9fbaSOystein Eftevaag 
680*758e9fbaSOystein Eftevaag void
check_SequenceUpdate(void ** state)681*758e9fbaSOystein Eftevaag check_SequenceUpdate(void **state)
682*758e9fbaSOystein Eftevaag {
683*758e9fbaSOystein Eftevaag     TSS2_RC r;
684*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
685*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
686*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
687*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
688*758e9fbaSOystein Eftevaag     };
689*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
690*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
691*758e9fbaSOystein Eftevaag         r = Esys_SequenceUpdate_Finish(esys_context);
692*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
693*758e9fbaSOystein Eftevaag     }
694*758e9fbaSOystein Eftevaag }
695*758e9fbaSOystein Eftevaag 
696*758e9fbaSOystein Eftevaag void
check_SequenceComplete(void ** state)697*758e9fbaSOystein Eftevaag check_SequenceComplete(void **state)
698*758e9fbaSOystein Eftevaag {
699*758e9fbaSOystein Eftevaag     TSS2_RC r;
700*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
701*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
702*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
703*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
704*758e9fbaSOystein Eftevaag     };
705*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *result;
706*758e9fbaSOystein Eftevaag     TPMT_TK_HASHCHECK *validation;
707*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
708*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
709*758e9fbaSOystein Eftevaag         r = Esys_SequenceComplete_Finish(esys_context, &result, &validation);
710*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
711*758e9fbaSOystein Eftevaag     }
712*758e9fbaSOystein Eftevaag }
713*758e9fbaSOystein Eftevaag 
714*758e9fbaSOystein Eftevaag void
check_EventSequenceComplete(void ** state)715*758e9fbaSOystein Eftevaag check_EventSequenceComplete(void **state)
716*758e9fbaSOystein Eftevaag {
717*758e9fbaSOystein Eftevaag     TSS2_RC r;
718*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
719*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
720*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
721*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
722*758e9fbaSOystein Eftevaag     };
723*758e9fbaSOystein Eftevaag     TPML_DIGEST_VALUES *results;
724*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
725*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
726*758e9fbaSOystein Eftevaag         r = Esys_EventSequenceComplete_Finish(esys_context, &results);
727*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
728*758e9fbaSOystein Eftevaag     }
729*758e9fbaSOystein Eftevaag }
730*758e9fbaSOystein Eftevaag 
731*758e9fbaSOystein Eftevaag void
check_Certify(void ** state)732*758e9fbaSOystein Eftevaag check_Certify(void **state)
733*758e9fbaSOystein Eftevaag {
734*758e9fbaSOystein Eftevaag     TSS2_RC r;
735*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
736*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
737*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
738*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
739*758e9fbaSOystein Eftevaag     };
740*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *certifyInfo;
741*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
742*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
743*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
744*758e9fbaSOystein Eftevaag         r = Esys_Certify_Finish(esys_context, &certifyInfo, &signature);
745*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
746*758e9fbaSOystein Eftevaag     }
747*758e9fbaSOystein Eftevaag }
748*758e9fbaSOystein Eftevaag 
749*758e9fbaSOystein Eftevaag void
check_CertifyCreation(void ** state)750*758e9fbaSOystein Eftevaag check_CertifyCreation(void **state)
751*758e9fbaSOystein Eftevaag {
752*758e9fbaSOystein Eftevaag     TSS2_RC r;
753*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
754*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
755*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
756*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
757*758e9fbaSOystein Eftevaag     };
758*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *certifyInfo;
759*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
760*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
761*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
762*758e9fbaSOystein Eftevaag         r = Esys_CertifyCreation_Finish(esys_context, &certifyInfo, &signature);
763*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
764*758e9fbaSOystein Eftevaag     }
765*758e9fbaSOystein Eftevaag }
766*758e9fbaSOystein Eftevaag 
767*758e9fbaSOystein Eftevaag void
check_Quote(void ** state)768*758e9fbaSOystein Eftevaag check_Quote(void **state)
769*758e9fbaSOystein Eftevaag {
770*758e9fbaSOystein Eftevaag     TSS2_RC r;
771*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
772*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
773*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
774*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
775*758e9fbaSOystein Eftevaag     };
776*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *quoted;
777*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
778*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
779*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
780*758e9fbaSOystein Eftevaag         r = Esys_Quote_Finish(esys_context, &quoted, &signature);
781*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
782*758e9fbaSOystein Eftevaag     }
783*758e9fbaSOystein Eftevaag }
784*758e9fbaSOystein Eftevaag 
785*758e9fbaSOystein Eftevaag void
check_GetSessionAuditDigest(void ** state)786*758e9fbaSOystein Eftevaag check_GetSessionAuditDigest(void **state)
787*758e9fbaSOystein Eftevaag {
788*758e9fbaSOystein Eftevaag     TSS2_RC r;
789*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
790*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
791*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
792*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
793*758e9fbaSOystein Eftevaag     };
794*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *auditInfo;
795*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
796*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
797*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
798*758e9fbaSOystein Eftevaag         r = Esys_GetSessionAuditDigest_Finish(esys_context,
799*758e9fbaSOystein Eftevaag                                               &auditInfo, &signature);
800*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
801*758e9fbaSOystein Eftevaag     }
802*758e9fbaSOystein Eftevaag }
803*758e9fbaSOystein Eftevaag 
804*758e9fbaSOystein Eftevaag void
check_GetCommandAuditDigest(void ** state)805*758e9fbaSOystein Eftevaag check_GetCommandAuditDigest(void **state)
806*758e9fbaSOystein Eftevaag {
807*758e9fbaSOystein Eftevaag     TSS2_RC r;
808*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
809*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
810*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
811*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
812*758e9fbaSOystein Eftevaag     };
813*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *auditInfo;
814*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
815*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
816*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
817*758e9fbaSOystein Eftevaag         r = Esys_GetCommandAuditDigest_Finish(esys_context,
818*758e9fbaSOystein Eftevaag                                               &auditInfo, &signature);
819*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
820*758e9fbaSOystein Eftevaag     }
821*758e9fbaSOystein Eftevaag }
822*758e9fbaSOystein Eftevaag 
823*758e9fbaSOystein Eftevaag void
check_GetTime(void ** state)824*758e9fbaSOystein Eftevaag check_GetTime(void **state)
825*758e9fbaSOystein Eftevaag {
826*758e9fbaSOystein Eftevaag     TSS2_RC r;
827*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
828*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
829*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
830*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
831*758e9fbaSOystein Eftevaag     };
832*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *timeInfo;
833*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
834*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
835*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
836*758e9fbaSOystein Eftevaag         r = Esys_GetTime_Finish(esys_context, &timeInfo, &signature);
837*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
838*758e9fbaSOystein Eftevaag     }
839*758e9fbaSOystein Eftevaag }
840*758e9fbaSOystein Eftevaag 
841*758e9fbaSOystein Eftevaag void
check_Commit(void ** state)842*758e9fbaSOystein Eftevaag check_Commit(void **state)
843*758e9fbaSOystein Eftevaag {
844*758e9fbaSOystein Eftevaag     TSS2_RC r;
845*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
846*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
847*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
848*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
849*758e9fbaSOystein Eftevaag     };
850*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *K;
851*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *L;
852*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *E;
853*758e9fbaSOystein Eftevaag     UINT16 counter;
854*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
855*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
856*758e9fbaSOystein Eftevaag         r = Esys_Commit_Finish(esys_context, &K, &L, &E, &counter);
857*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
858*758e9fbaSOystein Eftevaag     }
859*758e9fbaSOystein Eftevaag }
860*758e9fbaSOystein Eftevaag 
861*758e9fbaSOystein Eftevaag void
check_EC_Ephemeral(void ** state)862*758e9fbaSOystein Eftevaag check_EC_Ephemeral(void **state)
863*758e9fbaSOystein Eftevaag {
864*758e9fbaSOystein Eftevaag     TSS2_RC r;
865*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
866*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
867*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
868*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
869*758e9fbaSOystein Eftevaag     };
870*758e9fbaSOystein Eftevaag     TPM2B_ECC_POINT *Q;
871*758e9fbaSOystein Eftevaag     UINT16 counter;
872*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
873*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
874*758e9fbaSOystein Eftevaag         r = Esys_EC_Ephemeral_Finish(esys_context, &Q, &counter);
875*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
876*758e9fbaSOystein Eftevaag     }
877*758e9fbaSOystein Eftevaag }
878*758e9fbaSOystein Eftevaag 
879*758e9fbaSOystein Eftevaag void
check_VerifySignature(void ** state)880*758e9fbaSOystein Eftevaag check_VerifySignature(void **state)
881*758e9fbaSOystein Eftevaag {
882*758e9fbaSOystein Eftevaag     TSS2_RC r;
883*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
884*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
885*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
886*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
887*758e9fbaSOystein Eftevaag     };
888*758e9fbaSOystein Eftevaag     TPMT_TK_VERIFIED *validation;
889*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
890*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
891*758e9fbaSOystein Eftevaag         r = Esys_VerifySignature_Finish(esys_context, &validation);
892*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
893*758e9fbaSOystein Eftevaag     }
894*758e9fbaSOystein Eftevaag }
895*758e9fbaSOystein Eftevaag 
896*758e9fbaSOystein Eftevaag void
check_Sign(void ** state)897*758e9fbaSOystein Eftevaag check_Sign(void **state)
898*758e9fbaSOystein Eftevaag {
899*758e9fbaSOystein Eftevaag     TSS2_RC r;
900*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
901*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
902*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
903*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
904*758e9fbaSOystein Eftevaag     };
905*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
906*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
907*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
908*758e9fbaSOystein Eftevaag         r = Esys_Sign_Finish(esys_context, &signature);
909*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
910*758e9fbaSOystein Eftevaag     }
911*758e9fbaSOystein Eftevaag }
912*758e9fbaSOystein Eftevaag 
913*758e9fbaSOystein Eftevaag void
check_SetCommandCodeAuditStatus(void ** state)914*758e9fbaSOystein Eftevaag check_SetCommandCodeAuditStatus(void **state)
915*758e9fbaSOystein Eftevaag {
916*758e9fbaSOystein Eftevaag     TSS2_RC r;
917*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
918*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
919*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
920*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
921*758e9fbaSOystein Eftevaag     };
922*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
923*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
924*758e9fbaSOystein Eftevaag         r = Esys_SetCommandCodeAuditStatus_Finish(esys_context);
925*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
926*758e9fbaSOystein Eftevaag     }
927*758e9fbaSOystein Eftevaag }
928*758e9fbaSOystein Eftevaag 
929*758e9fbaSOystein Eftevaag void
check_PCR_Extend(void ** state)930*758e9fbaSOystein Eftevaag check_PCR_Extend(void **state)
931*758e9fbaSOystein Eftevaag {
932*758e9fbaSOystein Eftevaag     TSS2_RC r;
933*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
934*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
935*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
936*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
937*758e9fbaSOystein Eftevaag     };
938*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
939*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
940*758e9fbaSOystein Eftevaag         r = Esys_PCR_Extend_Finish(esys_context);
941*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
942*758e9fbaSOystein Eftevaag     }
943*758e9fbaSOystein Eftevaag }
944*758e9fbaSOystein Eftevaag 
945*758e9fbaSOystein Eftevaag void
check_PCR_Event(void ** state)946*758e9fbaSOystein Eftevaag check_PCR_Event(void **state)
947*758e9fbaSOystein Eftevaag {
948*758e9fbaSOystein Eftevaag     TSS2_RC r;
949*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
950*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
951*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
952*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
953*758e9fbaSOystein Eftevaag     };
954*758e9fbaSOystein Eftevaag     TPML_DIGEST_VALUES *digests;
955*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
956*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
957*758e9fbaSOystein Eftevaag         r = Esys_PCR_Event_Finish(esys_context, &digests);
958*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
959*758e9fbaSOystein Eftevaag     }
960*758e9fbaSOystein Eftevaag }
961*758e9fbaSOystein Eftevaag 
962*758e9fbaSOystein Eftevaag void
check_PCR_Read(void ** state)963*758e9fbaSOystein Eftevaag check_PCR_Read(void **state)
964*758e9fbaSOystein Eftevaag {
965*758e9fbaSOystein Eftevaag     TSS2_RC r;
966*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
967*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
968*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
969*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
970*758e9fbaSOystein Eftevaag     };
971*758e9fbaSOystein Eftevaag     TPML_PCR_SELECTION *pcrSelectionOut;
972*758e9fbaSOystein Eftevaag     TPML_DIGEST *pcrValues;
973*758e9fbaSOystein Eftevaag     UINT32 pcrUpdateCounter;
974*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
975*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
976*758e9fbaSOystein Eftevaag         r = Esys_PCR_Read_Finish(esys_context,
977*758e9fbaSOystein Eftevaag                                  &pcrUpdateCounter,
978*758e9fbaSOystein Eftevaag                                  &pcrSelectionOut, &pcrValues);
979*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
980*758e9fbaSOystein Eftevaag     }
981*758e9fbaSOystein Eftevaag }
982*758e9fbaSOystein Eftevaag 
983*758e9fbaSOystein Eftevaag void
check_PCR_Allocate(void ** state)984*758e9fbaSOystein Eftevaag check_PCR_Allocate(void **state)
985*758e9fbaSOystein Eftevaag {
986*758e9fbaSOystein Eftevaag     TSS2_RC r;
987*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
988*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
989*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
990*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
991*758e9fbaSOystein Eftevaag     };
992*758e9fbaSOystein Eftevaag     TPMI_YES_NO allocationSuccess;
993*758e9fbaSOystein Eftevaag     UINT32 maxPCR;
994*758e9fbaSOystein Eftevaag     UINT32 sizeNeeded;
995*758e9fbaSOystein Eftevaag     UINT32 sizeAvailable;
996*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
997*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
998*758e9fbaSOystein Eftevaag         r = Esys_PCR_Allocate_Finish(esys_context,
999*758e9fbaSOystein Eftevaag                                      &allocationSuccess,
1000*758e9fbaSOystein Eftevaag                                      &maxPCR, &sizeNeeded, &sizeAvailable);
1001*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1002*758e9fbaSOystein Eftevaag     }
1003*758e9fbaSOystein Eftevaag }
1004*758e9fbaSOystein Eftevaag 
1005*758e9fbaSOystein Eftevaag void
check_PCR_SetAuthPolicy(void ** state)1006*758e9fbaSOystein Eftevaag check_PCR_SetAuthPolicy(void **state)
1007*758e9fbaSOystein Eftevaag {
1008*758e9fbaSOystein Eftevaag     TSS2_RC r;
1009*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1010*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1011*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1012*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1013*758e9fbaSOystein Eftevaag     };
1014*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1015*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1016*758e9fbaSOystein Eftevaag         r = Esys_PCR_SetAuthPolicy_Finish(esys_context);
1017*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1018*758e9fbaSOystein Eftevaag     }
1019*758e9fbaSOystein Eftevaag }
1020*758e9fbaSOystein Eftevaag 
1021*758e9fbaSOystein Eftevaag void
check_PCR_SetAuthValue(void ** state)1022*758e9fbaSOystein Eftevaag check_PCR_SetAuthValue(void **state)
1023*758e9fbaSOystein Eftevaag {
1024*758e9fbaSOystein Eftevaag     TSS2_RC r;
1025*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1026*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1027*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1028*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1029*758e9fbaSOystein Eftevaag     };
1030*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1031*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1032*758e9fbaSOystein Eftevaag         r = Esys_PCR_SetAuthValue_Finish(esys_context);
1033*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1034*758e9fbaSOystein Eftevaag     }
1035*758e9fbaSOystein Eftevaag }
1036*758e9fbaSOystein Eftevaag 
1037*758e9fbaSOystein Eftevaag void
check_PCR_Reset(void ** state)1038*758e9fbaSOystein Eftevaag check_PCR_Reset(void **state)
1039*758e9fbaSOystein Eftevaag {
1040*758e9fbaSOystein Eftevaag     TSS2_RC r;
1041*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1042*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1043*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1044*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1045*758e9fbaSOystein Eftevaag     };
1046*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1047*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1048*758e9fbaSOystein Eftevaag         r = Esys_PCR_Reset_Finish(esys_context);
1049*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1050*758e9fbaSOystein Eftevaag     }
1051*758e9fbaSOystein Eftevaag }
1052*758e9fbaSOystein Eftevaag 
1053*758e9fbaSOystein Eftevaag void
check_PolicySigned(void ** state)1054*758e9fbaSOystein Eftevaag check_PolicySigned(void **state)
1055*758e9fbaSOystein Eftevaag {
1056*758e9fbaSOystein Eftevaag     TSS2_RC r;
1057*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1058*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1059*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1060*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1061*758e9fbaSOystein Eftevaag     };
1062*758e9fbaSOystein Eftevaag     TPM2B_TIMEOUT *timeout;
1063*758e9fbaSOystein Eftevaag     TPMT_TK_AUTH *policyTicket;
1064*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1065*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1066*758e9fbaSOystein Eftevaag         r = Esys_PolicySigned_Finish(esys_context, &timeout, &policyTicket);
1067*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1068*758e9fbaSOystein Eftevaag     }
1069*758e9fbaSOystein Eftevaag }
1070*758e9fbaSOystein Eftevaag 
1071*758e9fbaSOystein Eftevaag void
check_PolicySecret(void ** state)1072*758e9fbaSOystein Eftevaag check_PolicySecret(void **state)
1073*758e9fbaSOystein Eftevaag {
1074*758e9fbaSOystein Eftevaag     TSS2_RC r;
1075*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1076*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1077*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1078*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1079*758e9fbaSOystein Eftevaag     };
1080*758e9fbaSOystein Eftevaag     TPM2B_TIMEOUT *timeout;
1081*758e9fbaSOystein Eftevaag     TPMT_TK_AUTH *policyTicket;
1082*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1083*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1084*758e9fbaSOystein Eftevaag         r = Esys_PolicySecret_Finish(esys_context, &timeout, &policyTicket);
1085*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1086*758e9fbaSOystein Eftevaag     }
1087*758e9fbaSOystein Eftevaag }
1088*758e9fbaSOystein Eftevaag 
1089*758e9fbaSOystein Eftevaag void
check_PolicyTicket(void ** state)1090*758e9fbaSOystein Eftevaag check_PolicyTicket(void **state)
1091*758e9fbaSOystein Eftevaag {
1092*758e9fbaSOystein Eftevaag     TSS2_RC r;
1093*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1094*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1095*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1096*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1097*758e9fbaSOystein Eftevaag     };
1098*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1099*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1100*758e9fbaSOystein Eftevaag         r = Esys_PolicyTicket_Finish(esys_context);
1101*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1102*758e9fbaSOystein Eftevaag     }
1103*758e9fbaSOystein Eftevaag }
1104*758e9fbaSOystein Eftevaag 
1105*758e9fbaSOystein Eftevaag void
check_PolicyOR(void ** state)1106*758e9fbaSOystein Eftevaag check_PolicyOR(void **state)
1107*758e9fbaSOystein Eftevaag {
1108*758e9fbaSOystein Eftevaag     TSS2_RC r;
1109*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1110*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1111*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1112*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1113*758e9fbaSOystein Eftevaag     };
1114*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1115*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1116*758e9fbaSOystein Eftevaag         r = Esys_PolicyOR_Finish(esys_context);
1117*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1118*758e9fbaSOystein Eftevaag     }
1119*758e9fbaSOystein Eftevaag }
1120*758e9fbaSOystein Eftevaag 
1121*758e9fbaSOystein Eftevaag void
check_PolicyPCR(void ** state)1122*758e9fbaSOystein Eftevaag check_PolicyPCR(void **state)
1123*758e9fbaSOystein Eftevaag {
1124*758e9fbaSOystein Eftevaag     TSS2_RC r;
1125*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1126*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1127*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1128*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1129*758e9fbaSOystein Eftevaag     };
1130*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1131*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1132*758e9fbaSOystein Eftevaag         r = Esys_PolicyPCR_Finish(esys_context);
1133*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1134*758e9fbaSOystein Eftevaag     }
1135*758e9fbaSOystein Eftevaag }
1136*758e9fbaSOystein Eftevaag 
1137*758e9fbaSOystein Eftevaag void
check_PolicyLocality(void ** state)1138*758e9fbaSOystein Eftevaag check_PolicyLocality(void **state)
1139*758e9fbaSOystein Eftevaag {
1140*758e9fbaSOystein Eftevaag     TSS2_RC r;
1141*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1142*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1143*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1144*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1145*758e9fbaSOystein Eftevaag     };
1146*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1147*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1148*758e9fbaSOystein Eftevaag         r = Esys_PolicyLocality_Finish(esys_context);
1149*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1150*758e9fbaSOystein Eftevaag     }
1151*758e9fbaSOystein Eftevaag }
1152*758e9fbaSOystein Eftevaag 
1153*758e9fbaSOystein Eftevaag void
check_PolicyNV(void ** state)1154*758e9fbaSOystein Eftevaag check_PolicyNV(void **state)
1155*758e9fbaSOystein Eftevaag {
1156*758e9fbaSOystein Eftevaag     TSS2_RC r;
1157*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1158*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1159*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1160*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1161*758e9fbaSOystein Eftevaag     };
1162*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1163*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1164*758e9fbaSOystein Eftevaag         r = Esys_PolicyNV_Finish(esys_context);
1165*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1166*758e9fbaSOystein Eftevaag     }
1167*758e9fbaSOystein Eftevaag }
1168*758e9fbaSOystein Eftevaag 
1169*758e9fbaSOystein Eftevaag void
check_PolicyCounterTimer(void ** state)1170*758e9fbaSOystein Eftevaag check_PolicyCounterTimer(void **state)
1171*758e9fbaSOystein Eftevaag {
1172*758e9fbaSOystein Eftevaag     TSS2_RC r;
1173*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1174*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1175*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1176*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1177*758e9fbaSOystein Eftevaag     };
1178*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1179*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1180*758e9fbaSOystein Eftevaag         r = Esys_PolicyCounterTimer_Finish(esys_context);
1181*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1182*758e9fbaSOystein Eftevaag     }
1183*758e9fbaSOystein Eftevaag }
1184*758e9fbaSOystein Eftevaag 
1185*758e9fbaSOystein Eftevaag void
check_PolicyCommandCode(void ** state)1186*758e9fbaSOystein Eftevaag check_PolicyCommandCode(void **state)
1187*758e9fbaSOystein Eftevaag {
1188*758e9fbaSOystein Eftevaag     TSS2_RC r;
1189*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1190*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1191*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1192*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1193*758e9fbaSOystein Eftevaag     };
1194*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1195*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1196*758e9fbaSOystein Eftevaag         r = Esys_PolicyCommandCode_Finish(esys_context);
1197*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1198*758e9fbaSOystein Eftevaag     }
1199*758e9fbaSOystein Eftevaag }
1200*758e9fbaSOystein Eftevaag 
1201*758e9fbaSOystein Eftevaag void
check_PolicyPhysicalPresence(void ** state)1202*758e9fbaSOystein Eftevaag check_PolicyPhysicalPresence(void **state)
1203*758e9fbaSOystein Eftevaag {
1204*758e9fbaSOystein Eftevaag     TSS2_RC r;
1205*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1206*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1207*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1208*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1209*758e9fbaSOystein Eftevaag     };
1210*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1211*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1212*758e9fbaSOystein Eftevaag         r = Esys_PolicyPhysicalPresence_Finish(esys_context);
1213*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1214*758e9fbaSOystein Eftevaag     }
1215*758e9fbaSOystein Eftevaag }
1216*758e9fbaSOystein Eftevaag 
1217*758e9fbaSOystein Eftevaag void
check_PolicyCpHash(void ** state)1218*758e9fbaSOystein Eftevaag check_PolicyCpHash(void **state)
1219*758e9fbaSOystein Eftevaag {
1220*758e9fbaSOystein Eftevaag     TSS2_RC r;
1221*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1222*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1223*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1224*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1225*758e9fbaSOystein Eftevaag     };
1226*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1227*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1228*758e9fbaSOystein Eftevaag         r = Esys_PolicyCpHash_Finish(esys_context);
1229*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1230*758e9fbaSOystein Eftevaag     }
1231*758e9fbaSOystein Eftevaag }
1232*758e9fbaSOystein Eftevaag 
1233*758e9fbaSOystein Eftevaag void
check_PolicyNameHash(void ** state)1234*758e9fbaSOystein Eftevaag check_PolicyNameHash(void **state)
1235*758e9fbaSOystein Eftevaag {
1236*758e9fbaSOystein Eftevaag     TSS2_RC r;
1237*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1238*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1239*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1240*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1241*758e9fbaSOystein Eftevaag     };
1242*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1243*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1244*758e9fbaSOystein Eftevaag         r = Esys_PolicyNameHash_Finish(esys_context);
1245*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1246*758e9fbaSOystein Eftevaag     }
1247*758e9fbaSOystein Eftevaag }
1248*758e9fbaSOystein Eftevaag 
1249*758e9fbaSOystein Eftevaag void
check_PolicyDuplicationSelect(void ** state)1250*758e9fbaSOystein Eftevaag check_PolicyDuplicationSelect(void **state)
1251*758e9fbaSOystein Eftevaag {
1252*758e9fbaSOystein Eftevaag     TSS2_RC r;
1253*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1254*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1255*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1256*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1257*758e9fbaSOystein Eftevaag     };
1258*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1259*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1260*758e9fbaSOystein Eftevaag         r = Esys_PolicyDuplicationSelect_Finish(esys_context);
1261*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1262*758e9fbaSOystein Eftevaag     }
1263*758e9fbaSOystein Eftevaag }
1264*758e9fbaSOystein Eftevaag 
1265*758e9fbaSOystein Eftevaag void
check_PolicyAuthorize(void ** state)1266*758e9fbaSOystein Eftevaag check_PolicyAuthorize(void **state)
1267*758e9fbaSOystein Eftevaag {
1268*758e9fbaSOystein Eftevaag     TSS2_RC r;
1269*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1270*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1271*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1272*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1273*758e9fbaSOystein Eftevaag     };
1274*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1275*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1276*758e9fbaSOystein Eftevaag         r = Esys_PolicyAuthorize_Finish(esys_context);
1277*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1278*758e9fbaSOystein Eftevaag     }
1279*758e9fbaSOystein Eftevaag }
1280*758e9fbaSOystein Eftevaag 
1281*758e9fbaSOystein Eftevaag void
check_PolicyAuthValue(void ** state)1282*758e9fbaSOystein Eftevaag check_PolicyAuthValue(void **state)
1283*758e9fbaSOystein Eftevaag {
1284*758e9fbaSOystein Eftevaag     TSS2_RC r;
1285*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1286*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1287*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1288*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1289*758e9fbaSOystein Eftevaag     };
1290*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1291*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1292*758e9fbaSOystein Eftevaag         r = Esys_PolicyAuthValue_Finish(esys_context);
1293*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1294*758e9fbaSOystein Eftevaag     }
1295*758e9fbaSOystein Eftevaag }
1296*758e9fbaSOystein Eftevaag 
1297*758e9fbaSOystein Eftevaag void
check_PolicyPassword(void ** state)1298*758e9fbaSOystein Eftevaag check_PolicyPassword(void **state)
1299*758e9fbaSOystein Eftevaag {
1300*758e9fbaSOystein Eftevaag     TSS2_RC r;
1301*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1302*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1303*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1304*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1305*758e9fbaSOystein Eftevaag     };
1306*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1307*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1308*758e9fbaSOystein Eftevaag         r = Esys_PolicyPassword_Finish(esys_context);
1309*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1310*758e9fbaSOystein Eftevaag     }
1311*758e9fbaSOystein Eftevaag }
1312*758e9fbaSOystein Eftevaag 
1313*758e9fbaSOystein Eftevaag void
check_PolicyGetDigest(void ** state)1314*758e9fbaSOystein Eftevaag check_PolicyGetDigest(void **state)
1315*758e9fbaSOystein Eftevaag {
1316*758e9fbaSOystein Eftevaag     TSS2_RC r;
1317*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1318*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1319*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1320*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1321*758e9fbaSOystein Eftevaag     };
1322*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *policyDigest;
1323*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1324*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1325*758e9fbaSOystein Eftevaag         r = Esys_PolicyGetDigest_Finish(esys_context, &policyDigest);
1326*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1327*758e9fbaSOystein Eftevaag     }
1328*758e9fbaSOystein Eftevaag }
1329*758e9fbaSOystein Eftevaag 
1330*758e9fbaSOystein Eftevaag void
check_PolicyNvWritten(void ** state)1331*758e9fbaSOystein Eftevaag check_PolicyNvWritten(void **state)
1332*758e9fbaSOystein Eftevaag {
1333*758e9fbaSOystein Eftevaag     TSS2_RC r;
1334*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1335*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1336*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1337*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1338*758e9fbaSOystein Eftevaag     };
1339*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1340*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1341*758e9fbaSOystein Eftevaag         r = Esys_PolicyNvWritten_Finish(esys_context);
1342*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1343*758e9fbaSOystein Eftevaag     }
1344*758e9fbaSOystein Eftevaag }
1345*758e9fbaSOystein Eftevaag 
1346*758e9fbaSOystein Eftevaag void
check_PolicyTemplate(void ** state)1347*758e9fbaSOystein Eftevaag check_PolicyTemplate(void **state)
1348*758e9fbaSOystein Eftevaag {
1349*758e9fbaSOystein Eftevaag     TSS2_RC r;
1350*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1351*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1352*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1353*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1354*758e9fbaSOystein Eftevaag     };
1355*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1356*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1357*758e9fbaSOystein Eftevaag         r = Esys_PolicyTemplate_Finish(esys_context);
1358*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1359*758e9fbaSOystein Eftevaag     }
1360*758e9fbaSOystein Eftevaag }
1361*758e9fbaSOystein Eftevaag 
1362*758e9fbaSOystein Eftevaag void
check_PolicyAuthorizeNV(void ** state)1363*758e9fbaSOystein Eftevaag check_PolicyAuthorizeNV(void **state)
1364*758e9fbaSOystein Eftevaag {
1365*758e9fbaSOystein Eftevaag     TSS2_RC r;
1366*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1367*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1368*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1369*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1370*758e9fbaSOystein Eftevaag     };
1371*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1372*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1373*758e9fbaSOystein Eftevaag         r = Esys_PolicyAuthorizeNV_Finish(esys_context);
1374*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1375*758e9fbaSOystein Eftevaag     }
1376*758e9fbaSOystein Eftevaag }
1377*758e9fbaSOystein Eftevaag 
1378*758e9fbaSOystein Eftevaag void
check_CreatePrimary(void ** state)1379*758e9fbaSOystein Eftevaag check_CreatePrimary(void **state)
1380*758e9fbaSOystein Eftevaag {
1381*758e9fbaSOystein Eftevaag     TSS2_RC r;
1382*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1383*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1384*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1385*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1386*758e9fbaSOystein Eftevaag     };
1387*758e9fbaSOystein Eftevaag     ESYS_TR objectHandle_handle;
1388*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC *outPublic;
1389*758e9fbaSOystein Eftevaag     TPM2B_CREATION_DATA *creationData;
1390*758e9fbaSOystein Eftevaag     TPM2B_DIGEST *creationHash;
1391*758e9fbaSOystein Eftevaag     TPMT_TK_CREATION *creationTicket;
1392*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1393*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1394*758e9fbaSOystein Eftevaag         r = Esys_CreatePrimary_Finish(esys_context,
1395*758e9fbaSOystein Eftevaag                                       &objectHandle_handle,
1396*758e9fbaSOystein Eftevaag                                       &outPublic,
1397*758e9fbaSOystein Eftevaag                                       &creationData,
1398*758e9fbaSOystein Eftevaag                                       &creationHash, &creationTicket);
1399*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1400*758e9fbaSOystein Eftevaag     }
1401*758e9fbaSOystein Eftevaag }
1402*758e9fbaSOystein Eftevaag 
1403*758e9fbaSOystein Eftevaag void
check_HierarchyControl(void ** state)1404*758e9fbaSOystein Eftevaag check_HierarchyControl(void **state)
1405*758e9fbaSOystein Eftevaag {
1406*758e9fbaSOystein Eftevaag     TSS2_RC r;
1407*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1408*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1409*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1410*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1411*758e9fbaSOystein Eftevaag     };
1412*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1413*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1414*758e9fbaSOystein Eftevaag         r = Esys_HierarchyControl_Finish(esys_context);
1415*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1416*758e9fbaSOystein Eftevaag     }
1417*758e9fbaSOystein Eftevaag }
1418*758e9fbaSOystein Eftevaag 
1419*758e9fbaSOystein Eftevaag void
check_SetPrimaryPolicy(void ** state)1420*758e9fbaSOystein Eftevaag check_SetPrimaryPolicy(void **state)
1421*758e9fbaSOystein Eftevaag {
1422*758e9fbaSOystein Eftevaag     TSS2_RC r;
1423*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1424*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1425*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1426*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1427*758e9fbaSOystein Eftevaag     };
1428*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1429*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1430*758e9fbaSOystein Eftevaag         r = Esys_SetPrimaryPolicy_Finish(esys_context);
1431*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1432*758e9fbaSOystein Eftevaag     }
1433*758e9fbaSOystein Eftevaag }
1434*758e9fbaSOystein Eftevaag 
1435*758e9fbaSOystein Eftevaag void
check_ChangePPS(void ** state)1436*758e9fbaSOystein Eftevaag check_ChangePPS(void **state)
1437*758e9fbaSOystein Eftevaag {
1438*758e9fbaSOystein Eftevaag     TSS2_RC r;
1439*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1440*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1441*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1442*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1443*758e9fbaSOystein Eftevaag     };
1444*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1445*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1446*758e9fbaSOystein Eftevaag         r = Esys_ChangePPS_Finish(esys_context);
1447*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1448*758e9fbaSOystein Eftevaag     }
1449*758e9fbaSOystein Eftevaag }
1450*758e9fbaSOystein Eftevaag 
1451*758e9fbaSOystein Eftevaag void
check_ChangeEPS(void ** state)1452*758e9fbaSOystein Eftevaag check_ChangeEPS(void **state)
1453*758e9fbaSOystein Eftevaag {
1454*758e9fbaSOystein Eftevaag     TSS2_RC r;
1455*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1456*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1457*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1458*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1459*758e9fbaSOystein Eftevaag     };
1460*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1461*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1462*758e9fbaSOystein Eftevaag         r = Esys_ChangeEPS_Finish(esys_context);
1463*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1464*758e9fbaSOystein Eftevaag     }
1465*758e9fbaSOystein Eftevaag }
1466*758e9fbaSOystein Eftevaag 
1467*758e9fbaSOystein Eftevaag void
check_Clear(void ** state)1468*758e9fbaSOystein Eftevaag check_Clear(void **state)
1469*758e9fbaSOystein Eftevaag {
1470*758e9fbaSOystein Eftevaag     TSS2_RC r;
1471*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1472*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1473*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1474*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1475*758e9fbaSOystein Eftevaag     };
1476*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1477*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1478*758e9fbaSOystein Eftevaag         r = Esys_Clear_Finish(esys_context);
1479*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1480*758e9fbaSOystein Eftevaag     }
1481*758e9fbaSOystein Eftevaag }
1482*758e9fbaSOystein Eftevaag 
1483*758e9fbaSOystein Eftevaag void
check_ClearControl(void ** state)1484*758e9fbaSOystein Eftevaag check_ClearControl(void **state)
1485*758e9fbaSOystein Eftevaag {
1486*758e9fbaSOystein Eftevaag     TSS2_RC r;
1487*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1488*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1489*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1490*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1491*758e9fbaSOystein Eftevaag     };
1492*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1493*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1494*758e9fbaSOystein Eftevaag         r = Esys_ClearControl_Finish(esys_context);
1495*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1496*758e9fbaSOystein Eftevaag     }
1497*758e9fbaSOystein Eftevaag }
1498*758e9fbaSOystein Eftevaag 
1499*758e9fbaSOystein Eftevaag void
check_HierarchyChangeAuth(void ** state)1500*758e9fbaSOystein Eftevaag check_HierarchyChangeAuth(void **state)
1501*758e9fbaSOystein Eftevaag {
1502*758e9fbaSOystein Eftevaag     TSS2_RC r;
1503*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1504*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1505*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1506*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1507*758e9fbaSOystein Eftevaag     };
1508*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1509*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1510*758e9fbaSOystein Eftevaag         r = Esys_HierarchyChangeAuth_Finish(esys_context);
1511*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1512*758e9fbaSOystein Eftevaag     }
1513*758e9fbaSOystein Eftevaag }
1514*758e9fbaSOystein Eftevaag 
1515*758e9fbaSOystein Eftevaag void
check_DictionaryAttackLockReset(void ** state)1516*758e9fbaSOystein Eftevaag check_DictionaryAttackLockReset(void **state)
1517*758e9fbaSOystein Eftevaag {
1518*758e9fbaSOystein Eftevaag     TSS2_RC r;
1519*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1520*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1521*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1522*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1523*758e9fbaSOystein Eftevaag     };
1524*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1525*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1526*758e9fbaSOystein Eftevaag         r = Esys_DictionaryAttackLockReset_Finish(esys_context);
1527*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1528*758e9fbaSOystein Eftevaag     }
1529*758e9fbaSOystein Eftevaag }
1530*758e9fbaSOystein Eftevaag 
1531*758e9fbaSOystein Eftevaag void
check_DictionaryAttackParameters(void ** state)1532*758e9fbaSOystein Eftevaag check_DictionaryAttackParameters(void **state)
1533*758e9fbaSOystein Eftevaag {
1534*758e9fbaSOystein Eftevaag     TSS2_RC r;
1535*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1536*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1537*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1538*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1539*758e9fbaSOystein Eftevaag     };
1540*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1541*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1542*758e9fbaSOystein Eftevaag         r = Esys_DictionaryAttackParameters_Finish(esys_context);
1543*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1544*758e9fbaSOystein Eftevaag     }
1545*758e9fbaSOystein Eftevaag }
1546*758e9fbaSOystein Eftevaag 
1547*758e9fbaSOystein Eftevaag void
check_PP_Commands(void ** state)1548*758e9fbaSOystein Eftevaag check_PP_Commands(void **state)
1549*758e9fbaSOystein Eftevaag {
1550*758e9fbaSOystein Eftevaag     TSS2_RC r;
1551*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1552*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1553*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1554*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1555*758e9fbaSOystein Eftevaag     };
1556*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1557*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1558*758e9fbaSOystein Eftevaag         r = Esys_PP_Commands_Finish(esys_context);
1559*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1560*758e9fbaSOystein Eftevaag     }
1561*758e9fbaSOystein Eftevaag }
1562*758e9fbaSOystein Eftevaag 
1563*758e9fbaSOystein Eftevaag void
check_SetAlgorithmSet(void ** state)1564*758e9fbaSOystein Eftevaag check_SetAlgorithmSet(void **state)
1565*758e9fbaSOystein Eftevaag {
1566*758e9fbaSOystein Eftevaag     TSS2_RC r;
1567*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1568*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1569*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1570*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1571*758e9fbaSOystein Eftevaag     };
1572*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1573*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1574*758e9fbaSOystein Eftevaag         r = Esys_SetAlgorithmSet_Finish(esys_context);
1575*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1576*758e9fbaSOystein Eftevaag     }
1577*758e9fbaSOystein Eftevaag }
1578*758e9fbaSOystein Eftevaag 
1579*758e9fbaSOystein Eftevaag void
check_FieldUpgradeStart(void ** state)1580*758e9fbaSOystein Eftevaag check_FieldUpgradeStart(void **state)
1581*758e9fbaSOystein Eftevaag {
1582*758e9fbaSOystein Eftevaag     TSS2_RC r;
1583*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1584*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1585*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1586*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1587*758e9fbaSOystein Eftevaag     };
1588*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1589*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1590*758e9fbaSOystein Eftevaag         r = Esys_FieldUpgradeStart_Finish(esys_context);
1591*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1592*758e9fbaSOystein Eftevaag     }
1593*758e9fbaSOystein Eftevaag }
1594*758e9fbaSOystein Eftevaag 
1595*758e9fbaSOystein Eftevaag void
check_FieldUpgradeData(void ** state)1596*758e9fbaSOystein Eftevaag check_FieldUpgradeData(void **state)
1597*758e9fbaSOystein Eftevaag {
1598*758e9fbaSOystein Eftevaag     TSS2_RC r;
1599*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1600*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1601*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1602*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1603*758e9fbaSOystein Eftevaag     };
1604*758e9fbaSOystein Eftevaag     TPMT_HA *nextDigest;
1605*758e9fbaSOystein Eftevaag     TPMT_HA *firstDigest;
1606*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1607*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1608*758e9fbaSOystein Eftevaag         r = Esys_FieldUpgradeData_Finish(esys_context,
1609*758e9fbaSOystein Eftevaag                                          &nextDigest, &firstDigest);
1610*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1611*758e9fbaSOystein Eftevaag     }
1612*758e9fbaSOystein Eftevaag }
1613*758e9fbaSOystein Eftevaag 
1614*758e9fbaSOystein Eftevaag void
check_FirmwareRead(void ** state)1615*758e9fbaSOystein Eftevaag check_FirmwareRead(void **state)
1616*758e9fbaSOystein Eftevaag {
1617*758e9fbaSOystein Eftevaag     TSS2_RC r;
1618*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1619*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1620*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1621*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1622*758e9fbaSOystein Eftevaag     };
1623*758e9fbaSOystein Eftevaag     TPM2B_MAX_BUFFER *fuData;
1624*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1625*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1626*758e9fbaSOystein Eftevaag         r = Esys_FirmwareRead_Finish(esys_context, &fuData);
1627*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1628*758e9fbaSOystein Eftevaag     }
1629*758e9fbaSOystein Eftevaag }
1630*758e9fbaSOystein Eftevaag 
1631*758e9fbaSOystein Eftevaag void
check_ContextSave(void ** state)1632*758e9fbaSOystein Eftevaag check_ContextSave(void **state)
1633*758e9fbaSOystein Eftevaag {
1634*758e9fbaSOystein Eftevaag     TSS2_RC r;
1635*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1636*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1637*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1638*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1639*758e9fbaSOystein Eftevaag     };
1640*758e9fbaSOystein Eftevaag     TPMS_CONTEXT *context;
1641*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1642*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1643*758e9fbaSOystein Eftevaag         r = Esys_ContextSave_Finish(esys_context, &context);
1644*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1645*758e9fbaSOystein Eftevaag     }
1646*758e9fbaSOystein Eftevaag }
1647*758e9fbaSOystein Eftevaag 
1648*758e9fbaSOystein Eftevaag void
check_ContextLoad(void ** state)1649*758e9fbaSOystein Eftevaag check_ContextLoad(void **state)
1650*758e9fbaSOystein Eftevaag {
1651*758e9fbaSOystein Eftevaag     TSS2_RC r;
1652*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1653*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1654*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1655*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1656*758e9fbaSOystein Eftevaag     };
1657*758e9fbaSOystein Eftevaag     ESYS_TR loadedHandle_handle;
1658*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1659*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1660*758e9fbaSOystein Eftevaag         r = Esys_ContextLoad_Finish(esys_context, &loadedHandle_handle);
1661*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1662*758e9fbaSOystein Eftevaag     }
1663*758e9fbaSOystein Eftevaag }
1664*758e9fbaSOystein Eftevaag 
1665*758e9fbaSOystein Eftevaag void
check_FlushContext(void ** state)1666*758e9fbaSOystein Eftevaag check_FlushContext(void **state)
1667*758e9fbaSOystein Eftevaag {
1668*758e9fbaSOystein Eftevaag     TSS2_RC r;
1669*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1670*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1671*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1672*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1673*758e9fbaSOystein Eftevaag     };
1674*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1675*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1676*758e9fbaSOystein Eftevaag         r = Esys_FlushContext_Finish(esys_context);
1677*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1678*758e9fbaSOystein Eftevaag     }
1679*758e9fbaSOystein Eftevaag }
1680*758e9fbaSOystein Eftevaag 
1681*758e9fbaSOystein Eftevaag void
check_EvictControl(void ** state)1682*758e9fbaSOystein Eftevaag check_EvictControl(void **state)
1683*758e9fbaSOystein Eftevaag {
1684*758e9fbaSOystein Eftevaag     TSS2_RC r;
1685*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1686*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1687*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1688*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1689*758e9fbaSOystein Eftevaag     };
1690*758e9fbaSOystein Eftevaag     ESYS_TR newObjectHandle_handle;
1691*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1692*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1693*758e9fbaSOystein Eftevaag         r = Esys_EvictControl_Finish(esys_context, &newObjectHandle_handle);
1694*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1695*758e9fbaSOystein Eftevaag     }
1696*758e9fbaSOystein Eftevaag }
1697*758e9fbaSOystein Eftevaag 
1698*758e9fbaSOystein Eftevaag void
check_ReadClock(void ** state)1699*758e9fbaSOystein Eftevaag check_ReadClock(void **state)
1700*758e9fbaSOystein Eftevaag {
1701*758e9fbaSOystein Eftevaag     TSS2_RC r;
1702*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1703*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1704*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1705*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1706*758e9fbaSOystein Eftevaag     };
1707*758e9fbaSOystein Eftevaag     TPMS_TIME_INFO *currentTime;
1708*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1709*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1710*758e9fbaSOystein Eftevaag         r = Esys_ReadClock_Finish(esys_context, &currentTime);
1711*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1712*758e9fbaSOystein Eftevaag     }
1713*758e9fbaSOystein Eftevaag }
1714*758e9fbaSOystein Eftevaag 
1715*758e9fbaSOystein Eftevaag void
check_ClockSet(void ** state)1716*758e9fbaSOystein Eftevaag check_ClockSet(void **state)
1717*758e9fbaSOystein Eftevaag {
1718*758e9fbaSOystein Eftevaag     TSS2_RC r;
1719*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1720*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1721*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1722*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1723*758e9fbaSOystein Eftevaag     };
1724*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1725*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1726*758e9fbaSOystein Eftevaag         r = Esys_ClockSet_Finish(esys_context);
1727*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1728*758e9fbaSOystein Eftevaag     }
1729*758e9fbaSOystein Eftevaag }
1730*758e9fbaSOystein Eftevaag 
1731*758e9fbaSOystein Eftevaag void
check_ClockRateAdjust(void ** state)1732*758e9fbaSOystein Eftevaag check_ClockRateAdjust(void **state)
1733*758e9fbaSOystein Eftevaag {
1734*758e9fbaSOystein Eftevaag     TSS2_RC r;
1735*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1736*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1737*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1738*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1739*758e9fbaSOystein Eftevaag     };
1740*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1741*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1742*758e9fbaSOystein Eftevaag         r = Esys_ClockRateAdjust_Finish(esys_context);
1743*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1744*758e9fbaSOystein Eftevaag     }
1745*758e9fbaSOystein Eftevaag }
1746*758e9fbaSOystein Eftevaag 
1747*758e9fbaSOystein Eftevaag void
check_GetCapability(void ** state)1748*758e9fbaSOystein Eftevaag check_GetCapability(void **state)
1749*758e9fbaSOystein Eftevaag {
1750*758e9fbaSOystein Eftevaag     TSS2_RC r;
1751*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1752*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1753*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1754*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1755*758e9fbaSOystein Eftevaag     };
1756*758e9fbaSOystein Eftevaag     TPMS_CAPABILITY_DATA *capabilityData;
1757*758e9fbaSOystein Eftevaag     TPMI_YES_NO moreData;
1758*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1759*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1760*758e9fbaSOystein Eftevaag         r = Esys_GetCapability_Finish(esys_context, &moreData, &capabilityData);
1761*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1762*758e9fbaSOystein Eftevaag     }
1763*758e9fbaSOystein Eftevaag }
1764*758e9fbaSOystein Eftevaag 
1765*758e9fbaSOystein Eftevaag void
check_TestParms(void ** state)1766*758e9fbaSOystein Eftevaag check_TestParms(void **state)
1767*758e9fbaSOystein Eftevaag {
1768*758e9fbaSOystein Eftevaag     TSS2_RC r;
1769*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1770*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1771*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1772*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1773*758e9fbaSOystein Eftevaag     };
1774*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1775*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1776*758e9fbaSOystein Eftevaag         r = Esys_TestParms_Finish(esys_context);
1777*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1778*758e9fbaSOystein Eftevaag     }
1779*758e9fbaSOystein Eftevaag }
1780*758e9fbaSOystein Eftevaag 
1781*758e9fbaSOystein Eftevaag void
check_NV_DefineSpace(void ** state)1782*758e9fbaSOystein Eftevaag check_NV_DefineSpace(void **state)
1783*758e9fbaSOystein Eftevaag {
1784*758e9fbaSOystein Eftevaag     TSS2_RC r;
1785*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1786*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1787*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1788*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1789*758e9fbaSOystein Eftevaag     };
1790*758e9fbaSOystein Eftevaag     ESYS_TR nvHandle_handle;
1791*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1792*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1793*758e9fbaSOystein Eftevaag         r = Esys_NV_DefineSpace_Finish(esys_context, &nvHandle_handle);
1794*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1795*758e9fbaSOystein Eftevaag     }
1796*758e9fbaSOystein Eftevaag }
1797*758e9fbaSOystein Eftevaag 
1798*758e9fbaSOystein Eftevaag void
check_NV_UndefineSpace(void ** state)1799*758e9fbaSOystein Eftevaag check_NV_UndefineSpace(void **state)
1800*758e9fbaSOystein Eftevaag {
1801*758e9fbaSOystein Eftevaag     TSS2_RC r;
1802*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1803*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1804*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1805*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1806*758e9fbaSOystein Eftevaag     };
1807*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1808*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1809*758e9fbaSOystein Eftevaag         r = Esys_NV_UndefineSpace_Finish(esys_context);
1810*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1811*758e9fbaSOystein Eftevaag     }
1812*758e9fbaSOystein Eftevaag }
1813*758e9fbaSOystein Eftevaag 
1814*758e9fbaSOystein Eftevaag void
check_NV_UndefineSpaceSpecial(void ** state)1815*758e9fbaSOystein Eftevaag check_NV_UndefineSpaceSpecial(void **state)
1816*758e9fbaSOystein Eftevaag {
1817*758e9fbaSOystein Eftevaag     TSS2_RC r;
1818*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1819*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1820*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1821*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1822*758e9fbaSOystein Eftevaag     };
1823*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1824*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1825*758e9fbaSOystein Eftevaag         r = Esys_NV_UndefineSpaceSpecial_Finish(esys_context);
1826*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1827*758e9fbaSOystein Eftevaag     }
1828*758e9fbaSOystein Eftevaag }
1829*758e9fbaSOystein Eftevaag 
1830*758e9fbaSOystein Eftevaag void
check_NV_ReadPublic(void ** state)1831*758e9fbaSOystein Eftevaag check_NV_ReadPublic(void **state)
1832*758e9fbaSOystein Eftevaag {
1833*758e9fbaSOystein Eftevaag     TSS2_RC r;
1834*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1835*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1836*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1837*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1838*758e9fbaSOystein Eftevaag     };
1839*758e9fbaSOystein Eftevaag     TPM2B_NV_PUBLIC *nvPublic;
1840*758e9fbaSOystein Eftevaag     TPM2B_NAME *nvName;
1841*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1842*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1843*758e9fbaSOystein Eftevaag         r = Esys_NV_ReadPublic_Finish(esys_context, &nvPublic, &nvName);
1844*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1845*758e9fbaSOystein Eftevaag     }
1846*758e9fbaSOystein Eftevaag }
1847*758e9fbaSOystein Eftevaag 
1848*758e9fbaSOystein Eftevaag void
check_NV_Write(void ** state)1849*758e9fbaSOystein Eftevaag check_NV_Write(void **state)
1850*758e9fbaSOystein Eftevaag {
1851*758e9fbaSOystein Eftevaag     TSS2_RC r;
1852*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1853*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1854*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1855*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1856*758e9fbaSOystein Eftevaag     };
1857*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1858*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1859*758e9fbaSOystein Eftevaag         r = Esys_NV_Write_Finish(esys_context);
1860*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1861*758e9fbaSOystein Eftevaag     }
1862*758e9fbaSOystein Eftevaag }
1863*758e9fbaSOystein Eftevaag 
1864*758e9fbaSOystein Eftevaag void
check_NV_Increment(void ** state)1865*758e9fbaSOystein Eftevaag check_NV_Increment(void **state)
1866*758e9fbaSOystein Eftevaag {
1867*758e9fbaSOystein Eftevaag     TSS2_RC r;
1868*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1869*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1870*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1871*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1872*758e9fbaSOystein Eftevaag     };
1873*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1874*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1875*758e9fbaSOystein Eftevaag         r = Esys_NV_Increment_Finish(esys_context);
1876*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1877*758e9fbaSOystein Eftevaag     }
1878*758e9fbaSOystein Eftevaag }
1879*758e9fbaSOystein Eftevaag 
1880*758e9fbaSOystein Eftevaag void
check_NV_Extend(void ** state)1881*758e9fbaSOystein Eftevaag check_NV_Extend(void **state)
1882*758e9fbaSOystein Eftevaag {
1883*758e9fbaSOystein Eftevaag     TSS2_RC r;
1884*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1885*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1886*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1887*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1888*758e9fbaSOystein Eftevaag     };
1889*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1890*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1891*758e9fbaSOystein Eftevaag         r = Esys_NV_Extend_Finish(esys_context);
1892*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1893*758e9fbaSOystein Eftevaag     }
1894*758e9fbaSOystein Eftevaag }
1895*758e9fbaSOystein Eftevaag 
1896*758e9fbaSOystein Eftevaag void
check_NV_SetBits(void ** state)1897*758e9fbaSOystein Eftevaag check_NV_SetBits(void **state)
1898*758e9fbaSOystein Eftevaag {
1899*758e9fbaSOystein Eftevaag     TSS2_RC r;
1900*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1901*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1902*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1903*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1904*758e9fbaSOystein Eftevaag     };
1905*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1906*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1907*758e9fbaSOystein Eftevaag         r = Esys_NV_SetBits_Finish(esys_context);
1908*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1909*758e9fbaSOystein Eftevaag     }
1910*758e9fbaSOystein Eftevaag }
1911*758e9fbaSOystein Eftevaag 
1912*758e9fbaSOystein Eftevaag void
check_NV_WriteLock(void ** state)1913*758e9fbaSOystein Eftevaag check_NV_WriteLock(void **state)
1914*758e9fbaSOystein Eftevaag {
1915*758e9fbaSOystein Eftevaag     TSS2_RC r;
1916*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1917*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1918*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1919*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1920*758e9fbaSOystein Eftevaag     };
1921*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1922*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1923*758e9fbaSOystein Eftevaag         r = Esys_NV_WriteLock_Finish(esys_context);
1924*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1925*758e9fbaSOystein Eftevaag     }
1926*758e9fbaSOystein Eftevaag }
1927*758e9fbaSOystein Eftevaag 
1928*758e9fbaSOystein Eftevaag void
check_NV_GlobalWriteLock(void ** state)1929*758e9fbaSOystein Eftevaag check_NV_GlobalWriteLock(void **state)
1930*758e9fbaSOystein Eftevaag {
1931*758e9fbaSOystein Eftevaag     TSS2_RC r;
1932*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1933*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1934*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1935*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1936*758e9fbaSOystein Eftevaag     };
1937*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1938*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1939*758e9fbaSOystein Eftevaag         r = Esys_NV_GlobalWriteLock_Finish(esys_context);
1940*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1941*758e9fbaSOystein Eftevaag     }
1942*758e9fbaSOystein Eftevaag }
1943*758e9fbaSOystein Eftevaag 
1944*758e9fbaSOystein Eftevaag void
check_NV_Read(void ** state)1945*758e9fbaSOystein Eftevaag check_NV_Read(void **state)
1946*758e9fbaSOystein Eftevaag {
1947*758e9fbaSOystein Eftevaag     TSS2_RC r;
1948*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1949*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1950*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1951*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1952*758e9fbaSOystein Eftevaag     };
1953*758e9fbaSOystein Eftevaag     TPM2B_MAX_NV_BUFFER *data;
1954*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1955*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1956*758e9fbaSOystein Eftevaag         r = Esys_NV_Read_Finish(esys_context, &data);
1957*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1958*758e9fbaSOystein Eftevaag     }
1959*758e9fbaSOystein Eftevaag }
1960*758e9fbaSOystein Eftevaag 
1961*758e9fbaSOystein Eftevaag void
check_NV_ReadLock(void ** state)1962*758e9fbaSOystein Eftevaag check_NV_ReadLock(void **state)
1963*758e9fbaSOystein Eftevaag {
1964*758e9fbaSOystein Eftevaag     TSS2_RC r;
1965*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1966*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1967*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1968*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1969*758e9fbaSOystein Eftevaag     };
1970*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1971*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1972*758e9fbaSOystein Eftevaag         r = Esys_NV_ReadLock_Finish(esys_context);
1973*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1974*758e9fbaSOystein Eftevaag     }
1975*758e9fbaSOystein Eftevaag }
1976*758e9fbaSOystein Eftevaag 
1977*758e9fbaSOystein Eftevaag void
check_NV_ChangeAuth(void ** state)1978*758e9fbaSOystein Eftevaag check_NV_ChangeAuth(void **state)
1979*758e9fbaSOystein Eftevaag {
1980*758e9fbaSOystein Eftevaag     TSS2_RC r;
1981*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1982*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1983*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
1984*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
1985*758e9fbaSOystein Eftevaag     };
1986*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
1987*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
1988*758e9fbaSOystein Eftevaag         r = Esys_NV_ChangeAuth_Finish(esys_context);
1989*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
1990*758e9fbaSOystein Eftevaag     }
1991*758e9fbaSOystein Eftevaag }
1992*758e9fbaSOystein Eftevaag 
1993*758e9fbaSOystein Eftevaag void
check_NV_Certify(void ** state)1994*758e9fbaSOystein Eftevaag check_NV_Certify(void **state)
1995*758e9fbaSOystein Eftevaag {
1996*758e9fbaSOystein Eftevaag     TSS2_RC r;
1997*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
1998*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
1999*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
2000*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
2001*758e9fbaSOystein Eftevaag     };
2002*758e9fbaSOystein Eftevaag     TPM2B_ATTEST *certifyInfo;
2003*758e9fbaSOystein Eftevaag     TPMT_SIGNATURE *signature;
2004*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
2005*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
2006*758e9fbaSOystein Eftevaag         r = Esys_NV_Certify_Finish(esys_context, &certifyInfo, &signature);
2007*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
2008*758e9fbaSOystein Eftevaag     }
2009*758e9fbaSOystein Eftevaag }
2010*758e9fbaSOystein Eftevaag 
2011*758e9fbaSOystein Eftevaag void
check_Vendor_TCG_Test(void ** state)2012*758e9fbaSOystein Eftevaag check_Vendor_TCG_Test(void **state)
2013*758e9fbaSOystein Eftevaag {
2014*758e9fbaSOystein Eftevaag     TSS2_RC r;
2015*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *esys_context = (ESYS_CONTEXT *) * state;
2016*758e9fbaSOystein Eftevaag     enum _ESYS_STATE esys_states[3] = {
2017*758e9fbaSOystein Eftevaag         _ESYS_STATE_INIT,
2018*758e9fbaSOystein Eftevaag         _ESYS_STATE_INTERNALERROR
2019*758e9fbaSOystein Eftevaag     };
2020*758e9fbaSOystein Eftevaag     TPM2B_DATA *outputData;
2021*758e9fbaSOystein Eftevaag     for (size_t i = 0; i < sizeof(esys_states) / sizeof(esys_states[0]); i++) {
2022*758e9fbaSOystein Eftevaag         esys_context->state = esys_states[i];
2023*758e9fbaSOystein Eftevaag         r = Esys_Vendor_TCG_Test_Finish(esys_context, &outputData);
2024*758e9fbaSOystein Eftevaag         assert_int_equal(r, TSS2_ESYS_RC_BAD_SEQUENCE);
2025*758e9fbaSOystein Eftevaag     }
2026*758e9fbaSOystein Eftevaag }
2027*758e9fbaSOystein Eftevaag 
2028*758e9fbaSOystein Eftevaag int
main(void)2029*758e9fbaSOystein Eftevaag main(void)
2030*758e9fbaSOystein Eftevaag {
2031*758e9fbaSOystein Eftevaag     const struct CMUnitTest tests[] = {
2032*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Startup, esys_unit_setup,
2033*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2034*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Shutdown, esys_unit_setup,
2035*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2036*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_SelfTest, esys_unit_setup,
2037*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2038*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_IncrementalSelfTest,
2039*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2040*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_GetTestResult, esys_unit_setup,
2041*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2042*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_StartAuthSession, esys_unit_setup,
2043*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2044*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyRestart, esys_unit_setup,
2045*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2046*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Create, esys_unit_setup,
2047*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2048*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Load, esys_unit_setup,
2049*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2050*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_LoadExternal, esys_unit_setup,
2051*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2052*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ReadPublic, esys_unit_setup,
2053*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2054*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ActivateCredential,
2055*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2056*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_MakeCredential, esys_unit_setup,
2057*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2058*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Unseal, esys_unit_setup,
2059*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2060*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ObjectChangeAuth, esys_unit_setup,
2061*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2062*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_CreateLoaded, esys_unit_setup,
2063*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2064*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Duplicate, esys_unit_setup,
2065*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2066*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Rewrap, esys_unit_setup,
2067*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2068*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Import, esys_unit_setup,
2069*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2070*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_RSA_Encrypt, esys_unit_setup,
2071*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2072*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_RSA_Decrypt, esys_unit_setup,
2073*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2074*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ECDH_KeyGen, esys_unit_setup,
2075*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2076*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ECDH_ZGen, esys_unit_setup,
2077*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2078*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ECC_Parameters, esys_unit_setup,
2079*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2080*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ZGen_2Phase, esys_unit_setup,
2081*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2082*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_EncryptDecrypt, esys_unit_setup,
2083*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2084*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_EncryptDecrypt2, esys_unit_setup,
2085*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2086*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Hash, esys_unit_setup,
2087*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2088*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_HMAC, esys_unit_setup,
2089*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2090*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_GetRandom, esys_unit_setup,
2091*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2092*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_StirRandom, esys_unit_setup,
2093*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2094*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_HMAC_Start, esys_unit_setup,
2095*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2096*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_HashSequenceStart,
2097*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2098*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_SequenceUpdate, esys_unit_setup,
2099*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2100*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_SequenceComplete, esys_unit_setup,
2101*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2102*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_EventSequenceComplete,
2103*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2104*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Certify, esys_unit_setup,
2105*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2106*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_CertifyCreation, esys_unit_setup,
2107*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2108*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Quote, esys_unit_setup,
2109*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2110*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_GetSessionAuditDigest,
2111*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2112*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_GetCommandAuditDigest,
2113*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2114*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_GetTime, esys_unit_setup,
2115*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2116*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Commit, esys_unit_setup,
2117*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2118*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_EC_Ephemeral, esys_unit_setup,
2119*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2120*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_VerifySignature, esys_unit_setup,
2121*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2122*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Sign, esys_unit_setup,
2123*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2124*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_SetCommandCodeAuditStatus,
2125*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2126*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_Extend, esys_unit_setup,
2127*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2128*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_Event, esys_unit_setup,
2129*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2130*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_Read, esys_unit_setup,
2131*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2132*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_Allocate, esys_unit_setup,
2133*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2134*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_SetAuthPolicy,
2135*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2136*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_SetAuthValue, esys_unit_setup,
2137*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2138*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PCR_Reset, esys_unit_setup,
2139*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2140*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicySigned, esys_unit_setup,
2141*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2142*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicySecret, esys_unit_setup,
2143*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2144*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyTicket, esys_unit_setup,
2145*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2146*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyOR, esys_unit_setup,
2147*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2148*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyPCR, esys_unit_setup,
2149*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2150*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyLocality, esys_unit_setup,
2151*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2152*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyNV, esys_unit_setup,
2153*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2154*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyCounterTimer,
2155*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2156*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyCommandCode,
2157*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2158*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyPhysicalPresence,
2159*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2160*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyCpHash, esys_unit_setup,
2161*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2162*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyNameHash, esys_unit_setup,
2163*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2164*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyDuplicationSelect,
2165*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2166*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyAuthorize, esys_unit_setup,
2167*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2168*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyAuthValue, esys_unit_setup,
2169*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2170*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyPassword, esys_unit_setup,
2171*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2172*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyGetDigest, esys_unit_setup,
2173*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2174*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyNvWritten, esys_unit_setup,
2175*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2176*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyTemplate, esys_unit_setup,
2177*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2178*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PolicyAuthorizeNV,
2179*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2180*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_CreatePrimary, esys_unit_setup,
2181*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2182*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_HierarchyControl, esys_unit_setup,
2183*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2184*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_SetPrimaryPolicy, esys_unit_setup,
2185*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2186*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ChangePPS, esys_unit_setup,
2187*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2188*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ChangeEPS, esys_unit_setup,
2189*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2190*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Clear, esys_unit_setup,
2191*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2192*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ClearControl, esys_unit_setup,
2193*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2194*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_HierarchyChangeAuth,
2195*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2196*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_DictionaryAttackLockReset,
2197*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2198*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_DictionaryAttackParameters,
2199*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2200*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_PP_Commands, esys_unit_setup,
2201*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2202*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_SetAlgorithmSet, esys_unit_setup,
2203*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2204*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_FieldUpgradeStart,
2205*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2206*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_FieldUpgradeData, esys_unit_setup,
2207*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2208*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_FirmwareRead, esys_unit_setup,
2209*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2210*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ContextSave, esys_unit_setup,
2211*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2212*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ContextLoad, esys_unit_setup,
2213*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2214*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_FlushContext, esys_unit_setup,
2215*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2216*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_EvictControl, esys_unit_setup,
2217*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2218*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ReadClock, esys_unit_setup,
2219*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2220*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ClockSet, esys_unit_setup,
2221*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2222*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_ClockRateAdjust, esys_unit_setup,
2223*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2224*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_GetCapability, esys_unit_setup,
2225*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2226*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_TestParms, esys_unit_setup,
2227*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2228*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_DefineSpace, esys_unit_setup,
2229*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2230*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_UndefineSpace, esys_unit_setup,
2231*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2232*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_UndefineSpaceSpecial,
2233*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2234*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_ReadPublic, esys_unit_setup,
2235*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2236*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_Write, esys_unit_setup,
2237*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2238*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_Increment, esys_unit_setup,
2239*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2240*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_Extend, esys_unit_setup,
2241*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2242*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_SetBits, esys_unit_setup,
2243*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2244*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_WriteLock, esys_unit_setup,
2245*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2246*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_GlobalWriteLock,
2247*758e9fbaSOystein Eftevaag                                         esys_unit_setup, esys_unit_teardown),
2248*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_Read, esys_unit_setup,
2249*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2250*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_ReadLock, esys_unit_setup,
2251*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2252*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_ChangeAuth, esys_unit_setup,
2253*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2254*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_NV_Certify, esys_unit_setup,
2255*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2256*758e9fbaSOystein Eftevaag         cmocka_unit_test_setup_teardown(check_Vendor_TCG_Test, esys_unit_setup,
2257*758e9fbaSOystein Eftevaag                                         esys_unit_teardown),
2258*758e9fbaSOystein Eftevaag     };
2259*758e9fbaSOystein Eftevaag     return cmocka_run_group_tests(tests, NULL, NULL);
2260*758e9fbaSOystein Eftevaag }
2261