Prepare test code for future additional binaries
[platform/core/security/key-manager.git] / tests / test-key-provider.cpp
1 #define BOOST_TEST_MODULE KEY_MANAGER_TEST
2 #include <boost/test/included/unit_test.hpp>
3 #include <key-provider.h>
4
5 #define PASSWORD "12345TIZEN12345AAAAAAAAA"
6 #define INCORRECT_PASSWORD "AAAAAAAAAAAAAAAAAAAAA"
7 #define NEW_PASSWORD "NEW12345TIZEN12345NEW"
8
9 #define USERNAME_SHORT "AB"
10 #define USERNAME_LONG "SOFTWARE_CENTER_SYSTEM_SW_LAB_SECURITY_PART"
11 #define SMACK_LABEL_1 "SAMPLE_SMACK_LABEL_1"
12 #define SMACK_LABEL_2 "SAMPLE_SMACK_LABEL_2"
13
14 CKM::KeyProvider keyProvider;
15 CKM::RawBuffer rb_test;
16 CKM::RawBuffer rb_DEK1;
17 CKM::RawBuffer rb_pureDEK1;
18
19 // Test suite for key-provider module.
20 BOOST_AUTO_TEST_SUITE(S1_KEY_PROVIDER)
21
22 BOOST_AUTO_TEST_CASE(T00100_initialize){
23     boost::unit_test::unit_test_log.set_threshold_level( boost::unit_test::log_test_units);
24     BOOST_CHECK_NO_THROW(CKM::KeyProvider::initializeLibrary());
25 }
26
27 BOOST_AUTO_TEST_CASE(T00200_generateDomainKEK){
28     rb_test.clear();
29     BOOST_CHECK(!(rb_test = CKM::KeyProvider::generateDomainKEK(std::string(USERNAME_LONG),
30             std::string(PASSWORD))).empty());
31 }
32
33 BOOST_AUTO_TEST_CASE(T00300_construct){
34     BOOST_CHECK_NO_THROW(keyProvider = CKM::KeyProvider(rb_test, std::string(PASSWORD)));
35 }
36
37 BOOST_AUTO_TEST_CASE(T00301_construct_incorrect_password){
38     BOOST_CHECK_THROW(keyProvider = CKM::KeyProvider(rb_test, std::string(INCORRECT_PASSWORD)),
39             CKM::KeyProvider::Exception::UnwrapFailed);
40 }
41
42 BOOST_AUTO_TEST_CASE(T00400_isInitialized){
43     BOOST_CHECK(keyProvider.isInitialized());
44 }
45
46 BOOST_AUTO_TEST_CASE(T00500_getPureDomainKEK){
47     BOOST_CHECK_NO_THROW(rb_test = keyProvider.getPureDomainKEK());
48 }
49
50 BOOST_AUTO_TEST_CASE(T00600_getWrappedDomainKEK){
51     BOOST_CHECK_NO_THROW(rb_test = keyProvider.getWrappedDomainKEK(PASSWORD));
52 }
53
54 BOOST_AUTO_TEST_CASE(T00700_generateDEK){
55     rb_DEK1.clear();
56     BOOST_CHECK_NO_THROW(rb_DEK1 = keyProvider.generateDEK(std::string(SMACK_LABEL_1)));
57 }
58
59 BOOST_AUTO_TEST_CASE(T00800_getPureDEK){
60     rb_pureDEK1.clear();
61     BOOST_CHECK_NO_THROW(rb_pureDEK1 = keyProvider.getPureDEK(rb_DEK1));
62 }
63
64 BOOST_AUTO_TEST_CASE(T00900_reencrypt){
65     BOOST_CHECK_NO_THROW(CKM::KeyProvider::reencrypt(rb_test, std::string(PASSWORD),
66             std::string(NEW_PASSWORD)));
67 }
68
69 BOOST_AUTO_TEST_CASE(T00901_reencrypt_incorrect_password){
70     BOOST_CHECK_THROW((rb_test = CKM::KeyProvider::reencrypt(rb_test, std::string(INCORRECT_PASSWORD),
71             std::string(NEW_PASSWORD))), CKM::KeyProvider::Exception::UnwrapFailed);
72 }
73
74 BOOST_AUTO_TEST_CASE(T01000_getPureDEK_after_reencrypt){
75     BOOST_CHECK_NO_THROW(keyProvider.getPureDEK(rb_DEK1));
76 }
77
78 BOOST_AUTO_TEST_CASE(T10000_closeLibrary){
79     BOOST_CHECK_NO_THROW(CKM::KeyProvider::closeLibrary());
80 }
81
82 BOOST_AUTO_TEST_SUITE_END()
83
84
85 BOOST_AUTO_TEST_SUITE(S2_CRYPTO_MODULE)
86
87 BOOST_AUTO_TEST_CASE(T00100_initialize){
88     BOOST_CHECK(1);
89 }
90
91 BOOST_AUTO_TEST_SUITE_END()