[Problem] Key-manager reads data dir location from tzplatform_config.
Security-tests have the path hardcoded.
[Solution] Make security-tests read data dir location from tzplatform_config as
well.
[Verification] Run ckm-tests
Change-Id: I3e5c6f98bc34c27664218972e6ee76139b0a12e7
Requires: gdb
Requires: key-manager-listener
+%global ckm_test_dir %{?TZ_SYS_SHARE:%TZ_SYS_SHARE/ckm-test/}%{!?TZ_SYS_SHARE:/usr/share/ckm-test/}
+%global ckm_rw_data_dir %{?TZ_SYS_DATA:%TZ_SYS_DATA/ckm/}%{!?TZ_SYS_DATA:/opt/data/ckm/}
+
%description
Security tests repository - for tests that can't be kept together with code.
%endif
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCYNARA_DB_DIR=%{_localstatedir}/cynara/db \
- -DAPP_USER="security_test_user"
+ -DAPP_USER="security_test_user" \
+ -DCKM_TEST_DIR=%{ckm_test_dir} \
+ -DCKM_RW_DATA_DIR=%{ckm_rw_data_dir}
make %{?jobs:-j%jobs}
%install
/usr/bin/cynara-test
/usr/bin/ckm-tests
/usr/bin/ckm-integration-tests
-/usr/share/ckm-test/*
+%{ckm_test_dir}/*
/etc/security-tests
/usr/lib/security-tests/cynara-tests/plugins/single-policy/*
/usr/lib/security-tests/cynara-tests/plugins/multiple-policy/*
MESSAGE("SECURITY_MDFPP_STATE_ENABLE DISABLED !")
ENDIF (DEFINED SECURITY_MDFPP_STATE_ENABLED)
+ADD_DEFINITIONS("-DCKM_TEST_DIR=\"${CKM_TEST_DIR}\"")
+ADD_DEFINITIONS("-DCKM_RW_DATA_DIR=\"${CKM_RW_DATA_DIR}\"")
+
# Dependencies
PKG_CHECK_MODULES(CKM_DEP
libsmack
XML_2_okay.xml
XML_3_wrong.xml
device_key.xml
- DESTINATION /usr/share/ckm-test
+ DESTINATION ${CKM_TEST_DIR}
)
# C compilation
CKM::PKCS12ShPtr loadPkcs()
{
- std::ifstream is("/usr/share/ckm-test/pkcs.p12");
+ std::ifstream is(CKM_TEST_DIR "/pkcs.p12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
}
RUNNER_TEST(T3096_CAPI_TYPE_load_p12_file) {
- const char *p12file = "/usr/share/ckm-test/capi-t3096.p12";
+ const char *p12file = CKM_TEST_DIR "/capi-t3096.p12";
const char *password = "password";
int temp;
}
RUNNER_TEST(T3097_CAPI_TYPE_load_p12_file2) {
- const char *p12file = "/usr/share/ckm-test/capi-t3096.p12";
+ const char *p12file = CKM_TEST_DIR "/capi-t3096.p12";
const char *password = "password";
int temp;
ckmc_pkcs12_s *ppkcs12 = NULL;
int temp;
RUNNER_ASSERT_MSG(
- CKMC_ERROR_INVALID_FORMAT == (temp = ckmc_pkcs12_load("/usr/share/ckm-test/test1801.pkcs12", wrong_passwd, &ppkcs12)),
+ CKMC_ERROR_INVALID_FORMAT == (temp = ckmc_pkcs12_load(CKM_TEST_DIR "/test1801.pkcs12", wrong_passwd, &ppkcs12)),
CKMCReadableError(temp));
}
ckmc_pkcs12_s *ppkcs12 = NULL;
int temp;
RUNNER_ASSERT_MSG(
- CKMC_ERROR_NONE == (temp = ckmc_pkcs12_load("/usr/share/ckm-test/pkcs.p12", NULL, &ppkcs12)),
+ CKMC_ERROR_NONE == (temp = ckmc_pkcs12_load(CKM_TEST_DIR "/pkcs.p12", NULL, &ppkcs12)),
CKMCReadableError(temp));
RUNNER_ASSERT_MSG(NULL != ppkcs12->cert, "no certificate in PKCS12");
std::string XML_3_EXPECTED_CERT_1 = aliasWithLabel(ckmc_owner_id_system, "test3-cert1");
std::string XML_3_EXPECTED_DATA_1 = aliasWithLabel(ckmc_owner_id_system, "test3-data1");
-
std::string format_src_path(const char *file)
{
- return std::string("/usr/share/ckm-test/") + std::string(file);
+ return std::string(CKM_TEST_DIR) + std::string(file);
}
std::string format_dest_key_path(const char *file)
{
- return std::string("/opt/data/ckm/") + std::string(file);
+ return std::string(CKM_RW_DATA_DIR) + std::string(file);
}
std::string format_dest_path(const char *file)
{
- return std::string("/opt/data/ckm/initial_values/") + std::string(file);
+ return std::string(CKM_RW_DATA_DIR) + std::string( "/initial_values/") + std::string(file);
}
void copy_file(const std::string &from, const std::string &to)
stop_service(MANAGER);
start_service(MANAGER);
- std::ifstream is("/usr/share/ckm-test/pkcs.p12");
+ std::ifstream is(CKM_TEST_DIR "/pkcs.p12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
}
RUNNER_TEST(T1801_parse_PKCS12) {
- std::ifstream is("/usr/share/ckm-test/test1801.pkcs12");
+ std::ifstream is(CKM_TEST_DIR "/test1801.pkcs12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
}
RUNNER_TEST(T1802_negative_wrong_password) {
- std::ifstream is("/usr/share/ckm-test/test1801.pkcs12");
+ std::ifstream is(CKM_TEST_DIR "/test1801.pkcs12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
}
RUNNER_TEST(T1803_negative_broken_buffer) {
- std::ifstream is("/usr/share/ckm-test/test1801.pkcs12");
+ std::ifstream is(CKM_TEST_DIR "/test1801.pkcs12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
RUNNER_TEST(T1804_add_PKCS_collision_with_existing_alias)
{
auto manager = CKM::Manager::create();
- std::ifstream is("/usr/share/ckm-test/pkcs.p12");
+ std::ifstream is(CKM_TEST_DIR "/pkcs.p12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
RUNNER_TEST(T1805_add_bundle_with_chain_certificates)
{
auto manager = CKM::Manager::create();
- std::ifstream is("/usr/share/ckm-test/pkcs.p12");
+ std::ifstream is(CKM_TEST_DIR "/pkcs.p12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);
CKM::Alias alias = sharedDatabase("t1812alias1");
auto manager = CKM::Manager::create();
- std::ifstream is("/usr/share/ckm-test/pkcs.p12");
+ std::ifstream is(CKM_TEST_DIR "/pkcs.p12");
std::istreambuf_iterator<char> begin(is), end;
std::vector<char> buff(begin, end);