xref: /aosp_15_r20/external/tpm2-tss/test/unit/esys-crypto.c (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /*******************************************************************************
3*758e9fbaSOystein Eftevaag  * Copyright 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 <inttypes.h>
13*758e9fbaSOystein Eftevaag #include <string.h>
14*758e9fbaSOystein Eftevaag #include <stdlib.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 #include "esys_crypto.h"
21*758e9fbaSOystein Eftevaag 
22*758e9fbaSOystein Eftevaag #define LOGMODULE tests
23*758e9fbaSOystein Eftevaag #include "util/log.h"
24*758e9fbaSOystein Eftevaag 
25*758e9fbaSOystein Eftevaag /**
26*758e9fbaSOystein Eftevaag  * This unit tst checks several error cases of the crypto backends, which are not
27*758e9fbaSOystein Eftevaag  * covered by the integration tests.
28*758e9fbaSOystein Eftevaag  */
29*758e9fbaSOystein Eftevaag 
30*758e9fbaSOystein Eftevaag static void
check_hash_functions(void ** state)31*758e9fbaSOystein Eftevaag check_hash_functions(void **state)
32*758e9fbaSOystein Eftevaag {
33*758e9fbaSOystein Eftevaag     TSS2_RC rc;
34*758e9fbaSOystein Eftevaag     IESYS_CRYPTO_CONTEXT_BLOB *context;
35*758e9fbaSOystein Eftevaag     uint8_t buffer[10] = { 0 };
36*758e9fbaSOystein Eftevaag     TPM2B tpm2b;
37*758e9fbaSOystein Eftevaag     size_t size = 0;
38*758e9fbaSOystein Eftevaag 
39*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_start(NULL, TPM2_ALG_SHA384);
40*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
41*758e9fbaSOystein Eftevaag 
42*758e9fbaSOystein Eftevaag #ifndef OSSL
43*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_start(&context, TPM2_ALG_SHA512);
44*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_NOT_IMPLEMENTED);
45*758e9fbaSOystein Eftevaag #endif
46*758e9fbaSOystein Eftevaag 
47*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_start(&context, 0);
48*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_NOT_IMPLEMENTED);
49*758e9fbaSOystein Eftevaag 
50*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_start(&context, TPM2_ALG_SHA384);
51*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
52*758e9fbaSOystein Eftevaag 
53*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_finish(NULL, &buffer[0], &size);
54*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
55*758e9fbaSOystein Eftevaag 
56*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_finish(&context, &buffer[0], &size);
57*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_SIZE);
58*758e9fbaSOystein Eftevaag 
59*758e9fbaSOystein Eftevaag     iesys_crypto_hash_abort(NULL);
60*758e9fbaSOystein Eftevaag     iesys_crypto_hash_abort(&context);
61*758e9fbaSOystein Eftevaag 
62*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_update(NULL, &buffer[0], 10);
63*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
64*758e9fbaSOystein Eftevaag 
65*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_update2b(NULL, &tpm2b);
66*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
67*758e9fbaSOystein Eftevaag 
68*758e9fbaSOystein Eftevaag     /* Create invalid context */
69*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_start(&context, TPM2_ALG_SHA1, &buffer[0], 10);
70*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
71*758e9fbaSOystein Eftevaag 
72*758e9fbaSOystein Eftevaag     iesys_crypto_hash_abort(&context);
73*758e9fbaSOystein Eftevaag 
74*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_update(context, &buffer[0], 10);
75*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
76*758e9fbaSOystein Eftevaag 
77*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_finish(&context, &buffer[0], &size);
78*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
79*758e9fbaSOystein Eftevaag 
80*758e9fbaSOystein Eftevaag     /* cleanup */
81*758e9fbaSOystein Eftevaag     iesys_crypto_hmac_abort(&context);
82*758e9fbaSOystein Eftevaag }
83*758e9fbaSOystein Eftevaag 
84*758e9fbaSOystein Eftevaag static void
check_hmac_functions(void ** state)85*758e9fbaSOystein Eftevaag check_hmac_functions(void **state)
86*758e9fbaSOystein Eftevaag {
87*758e9fbaSOystein Eftevaag     TSS2_RC rc;
88*758e9fbaSOystein Eftevaag     IESYS_CRYPTO_CONTEXT_BLOB *context;
89*758e9fbaSOystein Eftevaag     uint8_t buffer[10] = { 0 };
90*758e9fbaSOystein Eftevaag     TPM2B tpm2b;
91*758e9fbaSOystein Eftevaag     size_t size = 0;
92*758e9fbaSOystein Eftevaag 
93*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_start(NULL, TPM2_ALG_SHA384, &buffer[0], 10);
94*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
95*758e9fbaSOystein Eftevaag 
96*758e9fbaSOystein Eftevaag #ifndef OSSL
97*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_start(&context, TPM2_ALG_SHA512, &buffer[0], 10);
98*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_NOT_IMPLEMENTED);
99*758e9fbaSOystein Eftevaag #endif
100*758e9fbaSOystein Eftevaag 
101*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_start(&context, 0,  &buffer[0], 10);
102*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_NOT_IMPLEMENTED);
103*758e9fbaSOystein Eftevaag 
104*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_start(&context, TPM2_ALG_SHA1,  &buffer[0], 10);
105*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
106*758e9fbaSOystein Eftevaag 
107*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_finish(NULL, &buffer[0], &size);
108*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
109*758e9fbaSOystein Eftevaag 
110*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_finish2b(NULL, &tpm2b);
111*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
112*758e9fbaSOystein Eftevaag 
113*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_finish(&context, &buffer[0], &size);
114*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_SIZE);
115*758e9fbaSOystein Eftevaag 
116*758e9fbaSOystein Eftevaag     iesys_crypto_hmac_abort(NULL);
117*758e9fbaSOystein Eftevaag     iesys_crypto_hmac_abort(&context);
118*758e9fbaSOystein Eftevaag 
119*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_update(NULL, &buffer[0], 10);
120*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
121*758e9fbaSOystein Eftevaag 
122*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_update2b(NULL, &tpm2b);
123*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
124*758e9fbaSOystein Eftevaag 
125*758e9fbaSOystein Eftevaag     /* Create invalid context */
126*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hash_start(&context, TPM2_ALG_SHA1);
127*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
128*758e9fbaSOystein Eftevaag 
129*758e9fbaSOystein Eftevaag     iesys_crypto_hmac_abort(&context);
130*758e9fbaSOystein Eftevaag 
131*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_update(context, &buffer[0], 10);
132*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
133*758e9fbaSOystein Eftevaag 
134*758e9fbaSOystein Eftevaag     rc = iesys_crypto_hmac_finish(&context, &buffer[0], &size);
135*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
136*758e9fbaSOystein Eftevaag 
137*758e9fbaSOystein Eftevaag     /* cleanup */
138*758e9fbaSOystein Eftevaag     iesys_crypto_hash_abort(&context);
139*758e9fbaSOystein Eftevaag }
140*758e9fbaSOystein Eftevaag 
141*758e9fbaSOystein Eftevaag static void
check_random(void ** state)142*758e9fbaSOystein Eftevaag check_random(void **state)
143*758e9fbaSOystein Eftevaag {
144*758e9fbaSOystein Eftevaag     TSS2_RC rc;
145*758e9fbaSOystein Eftevaag     size_t num_bytes = 0;
146*758e9fbaSOystein Eftevaag     TPM2B_NONCE nonce;
147*758e9fbaSOystein Eftevaag     rc = iesys_crypto_random2b(&nonce, num_bytes);
148*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
149*758e9fbaSOystein Eftevaag }
150*758e9fbaSOystein Eftevaag 
151*758e9fbaSOystein Eftevaag static void
check_pk_encrypt(void ** state)152*758e9fbaSOystein Eftevaag check_pk_encrypt(void **state)
153*758e9fbaSOystein Eftevaag {
154*758e9fbaSOystein Eftevaag     TSS2_RC rc;
155*758e9fbaSOystein Eftevaag     uint8_t in_buffer[5] = { 1, 2, 3, 4, 5 };
156*758e9fbaSOystein Eftevaag     size_t size = 5;
157*758e9fbaSOystein Eftevaag     uint8_t out_buffer[5];
158*758e9fbaSOystein Eftevaag     TPM2B_PUBLIC inPublicRSA = {
159*758e9fbaSOystein Eftevaag         .size = 0,
160*758e9fbaSOystein Eftevaag         .publicArea = {
161*758e9fbaSOystein Eftevaag             .type = TPM2_ALG_RSA,
162*758e9fbaSOystein Eftevaag             .nameAlg = TPM2_ALG_SHA1,
163*758e9fbaSOystein Eftevaag             .objectAttributes = (TPMA_OBJECT_USERWITHAUTH |
164*758e9fbaSOystein Eftevaag                                  TPMA_OBJECT_RESTRICTED |
165*758e9fbaSOystein Eftevaag                                  TPMA_OBJECT_DECRYPT |
166*758e9fbaSOystein Eftevaag                                  TPMA_OBJECT_FIXEDTPM |
167*758e9fbaSOystein Eftevaag                                  TPMA_OBJECT_FIXEDPARENT |
168*758e9fbaSOystein Eftevaag                                  TPMA_OBJECT_SENSITIVEDATAORIGIN),
169*758e9fbaSOystein Eftevaag             .authPolicy = {
170*758e9fbaSOystein Eftevaag                  .size = 0,
171*758e9fbaSOystein Eftevaag              },
172*758e9fbaSOystein Eftevaag             .parameters.rsaDetail = {
173*758e9fbaSOystein Eftevaag                  .symmetric = {
174*758e9fbaSOystein Eftevaag                      .algorithm = TPM2_ALG_AES,
175*758e9fbaSOystein Eftevaag                      .keyBits.aes = 128,
176*758e9fbaSOystein Eftevaag                      .mode.aes = TPM2_ALG_CFB,
177*758e9fbaSOystein Eftevaag                  },
178*758e9fbaSOystein Eftevaag                  .scheme = {
179*758e9fbaSOystein Eftevaag                       .scheme =
180*758e9fbaSOystein Eftevaag                       TPM2_ALG_NULL,
181*758e9fbaSOystein Eftevaag                   },
182*758e9fbaSOystein Eftevaag                  .keyBits = 2048,
183*758e9fbaSOystein Eftevaag                  .exponent = 0,
184*758e9fbaSOystein Eftevaag              },
185*758e9fbaSOystein Eftevaag             .unique.rsa = {
186*758e9fbaSOystein Eftevaag                  .size = 0,
187*758e9fbaSOystein Eftevaag                  .buffer = {}
188*758e9fbaSOystein Eftevaag                  ,
189*758e9fbaSOystein Eftevaag              }
190*758e9fbaSOystein Eftevaag         }
191*758e9fbaSOystein Eftevaag     };
192*758e9fbaSOystein Eftevaag 
193*758e9fbaSOystein Eftevaag     inPublicRSA.publicArea.nameAlg = 0;
194*758e9fbaSOystein Eftevaag     rc = iesys_crypto_pk_encrypt(&inPublicRSA, size, &in_buffer[0], size, &out_buffer[0], &size, "LABEL");
195*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_NOT_IMPLEMENTED);
196*758e9fbaSOystein Eftevaag 
197*758e9fbaSOystein Eftevaag     inPublicRSA.publicArea.nameAlg = TPM2_ALG_SHA1;
198*758e9fbaSOystein Eftevaag     inPublicRSA.publicArea.parameters.rsaDetail.scheme.scheme = 0;
199*758e9fbaSOystein Eftevaag     rc = iesys_crypto_pk_encrypt(&inPublicRSA, size, &in_buffer[0], size, &out_buffer[0], &size, "LABEL");
200*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_VALUE);
201*758e9fbaSOystein Eftevaag }
202*758e9fbaSOystein Eftevaag 
203*758e9fbaSOystein Eftevaag static void
check_aes_encrypt(void ** state)204*758e9fbaSOystein Eftevaag check_aes_encrypt(void **state)
205*758e9fbaSOystein Eftevaag {
206*758e9fbaSOystein Eftevaag     TSS2_RC rc;
207*758e9fbaSOystein Eftevaag     uint8_t key[32] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
208*758e9fbaSOystein Eftevaag                        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16  };
209*758e9fbaSOystein Eftevaag     uint8_t buffer[5] = { 1, 2, 3, 4, 5 };
210*758e9fbaSOystein Eftevaag     size_t size = 5;
211*758e9fbaSOystein Eftevaag 
212*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_encrypt(NULL, TPM2_ALG_AES, 192, TPM2_ALG_CFB, 16,
213*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
214*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
215*758e9fbaSOystein Eftevaag 
216*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_encrypt(&key[0], TPM2_ALG_AES, 192, TPM2_ALG_CFB, 16,
217*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
218*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
219*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_encrypt(&key[0], TPM2_ALG_AES, 256, TPM2_ALG_CFB, 16,
220*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
221*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_RC_SUCCESS);
222*758e9fbaSOystein Eftevaag 
223*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_encrypt(&key[0], 0, 256, TPM2_ALG_CFB, 16,
224*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
225*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_VALUE);
226*758e9fbaSOystein Eftevaag 
227*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_encrypt(&key[0], TPM2_ALG_AES, 256, 0, 16,
228*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
229*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_VALUE);
230*758e9fbaSOystein Eftevaag 
231*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_encrypt(&key[0], TPM2_ALG_AES, 999, TPM2_ALG_CFB, 16,
232*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
233*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_VALUE);
234*758e9fbaSOystein Eftevaag 
235*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_decrypt(NULL, TPM2_ALG_AES, 192, TPM2_ALG_CFB, 16,
236*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
237*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_REFERENCE);
238*758e9fbaSOystein Eftevaag 
239*758e9fbaSOystein Eftevaag     rc = iesys_crypto_sym_aes_decrypt(&key[0], 0, 192, TPM2_ALG_CFB, 16,
240*758e9fbaSOystein Eftevaag                                       &buffer[0], size, &key[0]);
241*758e9fbaSOystein Eftevaag     assert_int_equal (rc, TSS2_ESYS_RC_BAD_VALUE);
242*758e9fbaSOystein Eftevaag }
243*758e9fbaSOystein Eftevaag 
244*758e9fbaSOystein Eftevaag static void
check_free(void ** state)245*758e9fbaSOystein Eftevaag check_free(void **state)
246*758e9fbaSOystein Eftevaag {
247*758e9fbaSOystein Eftevaag     uint8_t *buffer;
248*758e9fbaSOystein Eftevaag 
249*758e9fbaSOystein Eftevaag     buffer = malloc(10);
250*758e9fbaSOystein Eftevaag     Esys_Free(buffer);
251*758e9fbaSOystein Eftevaag }
252*758e9fbaSOystein Eftevaag 
253*758e9fbaSOystein Eftevaag static void
check_get_sys_context(void ** state)254*758e9fbaSOystein Eftevaag check_get_sys_context(void **state)
255*758e9fbaSOystein Eftevaag {
256*758e9fbaSOystein Eftevaag     ESYS_CONTEXT *ctx;
257*758e9fbaSOystein Eftevaag     TSS2_TCTI_CONTEXT_COMMON_V1 tcti = {0};
258*758e9fbaSOystein Eftevaag     TSS2_SYS_CONTEXT *sys_ctx = NULL;
259*758e9fbaSOystein Eftevaag     TSS2_RC rc;
260*758e9fbaSOystein Eftevaag 
261*758e9fbaSOystein Eftevaag     rc = Esys_GetSysContext(NULL, NULL);
262*758e9fbaSOystein Eftevaag     assert_int_equal(rc, TSS2_ESYS_RC_BAD_REFERENCE);
263*758e9fbaSOystein Eftevaag 
264*758e9fbaSOystein Eftevaag     tcti.version = 1;
265*758e9fbaSOystein Eftevaag     tcti.transmit = (void*) 0xdeadbeef;
266*758e9fbaSOystein Eftevaag     tcti.receive = (void*) 0xdeadbeef;
267*758e9fbaSOystein Eftevaag 
268*758e9fbaSOystein Eftevaag     rc = Esys_Initialize(&ctx, (TSS2_TCTI_CONTEXT *) &tcti, NULL);
269*758e9fbaSOystein Eftevaag     assert_int_equal(rc, TSS2_RC_SUCCESS);
270*758e9fbaSOystein Eftevaag 
271*758e9fbaSOystein Eftevaag     rc = Esys_GetSysContext(ctx, &sys_ctx);
272*758e9fbaSOystein Eftevaag     assert_ptr_not_equal(sys_ctx, NULL);
273*758e9fbaSOystein Eftevaag     assert_int_equal(rc, TSS2_RC_SUCCESS);
274*758e9fbaSOystein Eftevaag 
275*758e9fbaSOystein Eftevaag     Esys_Finalize(&ctx);
276*758e9fbaSOystein Eftevaag }
277*758e9fbaSOystein Eftevaag 
278*758e9fbaSOystein Eftevaag int
main(int argc,char * argv[])279*758e9fbaSOystein Eftevaag main(int argc, char *argv[])
280*758e9fbaSOystein Eftevaag {
281*758e9fbaSOystein Eftevaag     const struct CMUnitTest tests[] = {
282*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_hash_functions),
283*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_hmac_functions),
284*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_random),
285*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_pk_encrypt),
286*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_aes_encrypt),
287*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_free),
288*758e9fbaSOystein Eftevaag         cmocka_unit_test(check_get_sys_context),
289*758e9fbaSOystein Eftevaag     };
290*758e9fbaSOystein Eftevaag     return cmocka_run_group_tests(tests, NULL, NULL);
291*758e9fbaSOystein Eftevaag }
292