1 /*
2 * Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7 #include <service/crypto/client/cpp/protocol/packed-c/packedc_crypto_client.h>
8 #include <service/crypto/test/service/crypto_service_scenarios.h>
9 #include <protocols/rpc/common/packed-c/encoding.h>
10 #include <service_locator.h>
11 #include <CppUTest/TestHarness.h>
12
13 /*
14 * Service-level tests that use the packed-c access protocol serialization
15 */
TEST_GROUP(CryptoServicePackedcTests)16 TEST_GROUP(CryptoServicePackedcTests)
17 {
18 void setup()
19 {
20 m_rpc_session = NULL;
21 m_crypto_service_context = NULL;
22 m_scenarios = NULL;
23
24 service_locator_init();
25
26 m_crypto_service_context = service_locator_query("sn:trustedfirmware.org:crypto:0");
27 CHECK_TRUE(m_crypto_service_context);
28
29 m_rpc_session = service_context_open(m_crypto_service_context);
30 CHECK_TRUE(m_rpc_session);
31
32 m_scenarios = new crypto_service_scenarios(new packedc_crypto_client(m_rpc_session));
33 }
34
35 void teardown()
36 {
37 delete m_scenarios;
38 m_scenarios = NULL;
39
40 if (m_crypto_service_context) {
41 if (m_rpc_session) {
42 service_context_close(m_crypto_service_context, m_rpc_session);
43 m_rpc_session = NULL;
44 }
45
46 service_context_relinquish(m_crypto_service_context);
47 m_crypto_service_context = NULL;
48 }
49 }
50
51 struct rpc_caller_session *m_rpc_session;
52 struct service_context *m_crypto_service_context;
53 crypto_service_scenarios *m_scenarios;
54 };
55
TEST(CryptoServicePackedcTests,generateVolatileKeys)56 TEST(CryptoServicePackedcTests, generateVolatileKeys)
57 {
58 m_scenarios->generateVolatileKeys();
59 }
60
TEST(CryptoServicePackedcTests,generatePersistentKeys)61 TEST(CryptoServicePackedcTests, generatePersistentKeys)
62 {
63 m_scenarios->generatePersistentKeys();
64 }
65
TEST(CryptoServicePackedcTests,copyKey)66 TEST(CryptoServicePackedcTests, copyKey)
67 {
68 m_scenarios->copyKey();
69 }
70
TEST(CryptoServicePackedcTests,purgeKey)71 TEST(CryptoServicePackedcTests, purgeKey)
72 {
73 m_scenarios->purgeKey();
74 }
75
TEST(CryptoServicePackedcTests,exportPublicKey)76 TEST(CryptoServicePackedcTests, exportPublicKey)
77 {
78 m_scenarios->exportPublicKey();
79 }
80
TEST(CryptoServicePackedcTests,exportAndImportKeyPair)81 TEST(CryptoServicePackedcTests, exportAndImportKeyPair)
82 {
83 m_scenarios->exportAndImportKeyPair();
84 }
85
TEST(CryptoServicePackedcTests,signAndVerifyHash)86 TEST(CryptoServicePackedcTests, signAndVerifyHash)
87 {
88 m_scenarios->signAndVerifyHash();
89 }
90
TEST(CryptoServicePackedcTests,signAndVerifyMessage)91 TEST(CryptoServicePackedcTests, signAndVerifyMessage)
92 {
93 m_scenarios->signAndVerifyMessage();
94 }
95
TEST(CryptoServicePackedcTests,signAndVerifyEat)96 TEST(CryptoServicePackedcTests, signAndVerifyEat)
97 {
98 m_scenarios->signAndVerifyEat();
99 }
100
TEST(CryptoServicePackedcTests,asymEncryptDecrypt)101 TEST(CryptoServicePackedcTests, asymEncryptDecrypt)
102 {
103 m_scenarios->asymEncryptDecrypt();
104 }
105
TEST(CryptoServicePackedcTests,asymEncryptDecryptWithSalt)106 TEST(CryptoServicePackedcTests, asymEncryptDecryptWithSalt)
107 {
108 m_scenarios->asymEncryptDecryptWithSalt();
109 }
110
TEST(CryptoServicePackedcTests,generateRandomNumbers)111 TEST(CryptoServicePackedcTests, generateRandomNumbers)
112 {
113 m_scenarios->generateRandomNumbers();
114 }
115
TEST(CryptoServicePackedcTests,verifyPkcs7Signature)116 TEST(CryptoServicePackedcTests, verifyPkcs7Signature)
117 {
118 m_scenarios->verifypkcs7signature();
119 }
120
TEST(CryptoServicePackedcTests,getUefiPrivAuthVarFingerprint)121 TEST(CryptoServicePackedcTests, getUefiPrivAuthVarFingerprint)
122 {
123 m_scenarios->getUefiPrivAuthVarFingerprint();
124 }
125