Introduce real Kesystore check 33/112933/2
authorkjaniak <kornel.janiak@nokia.com>
Mon, 21 Sep 2020 13:15:38 +0000 (15:15 +0200)
committerkjaniak <kornel.janiak@nokia.com>
Mon, 21 Sep 2020 13:23:47 +0000 (15:23 +0200)
Previous implementation for keystores was just comapring zero elements with zero elements,
since keystore doesnt contain any certs (just private keys). Small naming of keywords changes.

Change-Id: If8002e44ef3ced9f2203b94178f9713acd81e561
Signed-off-by: kjaniak <kornel.janiak@nokia.com>
Issue-ID: DCAEGEN2-2253

tests/oom-platform-cert-service/truststoremerger/libraries/JksTruststoreValidator.py [deleted file]
tests/oom-platform-cert-service/truststoremerger/libraries/JksValidator.py [new file with mode: 0644]
tests/oom-platform-cert-service/truststoremerger/resources/trust-merger-keywords.robot
tests/oom-platform-cert-service/truststoremerger/trust-merger-test.robot

diff --git a/tests/oom-platform-cert-service/truststoremerger/libraries/JksTruststoreValidator.py b/tests/oom-platform-cert-service/truststoremerger/libraries/JksTruststoreValidator.py
deleted file mode 100644 (file)
index e18ca12..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-import jks
-
-class JksTruststoreValidator:
-
-  def get_truststore(self, truststore_path, password_path):
-    truststore = jks.KeyStore.load(truststore_path, open(password_path, 'rb').read())
-    return truststore.certs
-
-  def assert_jks_truststores_equal(self, result_truststore_path, password_path, expected_truststore_path):
-    result_certs = self.get_truststore(result_truststore_path, password_path)
-    expected_certs = self.get_truststore(expected_truststore_path, password_path)
-    if len(result_certs) != len(expected_certs):
-      return False
-    for k in result_certs:
-      if not (k in expected_certs and result_certs[k].cert == expected_certs[k].cert):
-        return False
-    return True
diff --git a/tests/oom-platform-cert-service/truststoremerger/libraries/JksValidator.py b/tests/oom-platform-cert-service/truststoremerger/libraries/JksValidator.py
new file mode 100644 (file)
index 0000000..983f66b
--- /dev/null
@@ -0,0 +1,28 @@
+
+import jks
+
+class JksValidator:
+
+  def get_jks_entries(self, jks_path, password_path):
+    store = jks.KeyStore.load(jks_path, open(password_path, 'rb').read())
+    return store.entries
+
+  def assert_jks_truststores_equal(self, result_truststore_path, password_path, expected_truststore_path):
+    result_keys = self.get_jks_entries(result_truststore_path, password_path)
+    expected_keys = self.get_jks_entries(expected_truststore_path, password_path)
+    if len(result_keys) != len(expected_keys):
+      return False
+    for k in result_keys:
+      if not (k in expected_keys and result_keys[k].cert == expected_keys[k].cert):
+        return False
+    return True
+
+  def assert_jks_keystores_equal(self, result_keystore_path, password_path, expected_keystore_path):
+    result_keys = self.get_jks_entries(result_keystore_path, password_path)
+    expected_keys = self.get_jks_entries(expected_keystore_path, password_path)
+    if len(result_keys) != len(expected_keys):
+      return False
+    for k in result_keys:
+      if not (k in expected_keys and result_keys[k].pkey == expected_keys[k].pkey):
+        return False
+    return True
index 5aba7fe..416ce61 100644 (file)
@@ -3,7 +3,7 @@
 Resource          ../../../common.robot
 Resource          ./trust-merger-properties.robot
 Library           ../libraries/TrustMergerManager.py  ${MOUNT_PATH}  ${TRUSTSTORES_PATH}
-Library           ../libraries/JksTruststoreValidator.py
+Library           ../libraries/JksValidator.py
 Library           ../libraries/PemTruststoreValidator.py
 
 *** Keywords ***
@@ -16,7 +16,7 @@ Run Trust Merger And Expect Error
     Should Be Equal As Strings  ${exit_code}  ${expected_exit_code}  Client return unexpected exit code return: ${exitcode} , but expected: ${expected_exit_code}
 
 Run Trust Merger And Merge Truststore Files To Jks
-    [Documentation]  Run Truststore Merger Container And Validate Exit Code And Files
+    [Documentation]  Run Truststore Merger Container And Validate Exit Code And Provided Truststore Files
     [Arguments]  ${env_file}  ${expected_exit_code}  ${jks_path}  ${jks_password}  ${expected_jks_path}
     ${exit_code}=  Run Merger Container  ${DOCKER_MERGER_IMAGE}  ${MERGER_CONTAINER_NAME}  ${env_file}
     ${files_equal}=  Assert Jks Truststores Equal  ${jks_path}  ${jks_password}  ${expected_jks_path}
@@ -24,6 +24,15 @@ Run Trust Merger And Merge Truststore Files To Jks
     Should Be Equal As Strings  ${exit_code}  ${expected_exit_code}  Client return unexpected exit code return: ${exitcode} , but expected: ${expected_exit_code}
     Should Be True  ${files_equal}
 
+Run Trust Merger And Check Copied Keystore Files
+    [Documentation]  Run Truststore Merger Container And Validate Exit Code And Provided Keystore Files
+    [Arguments]  ${env_file}  ${expected_exit_code}  ${jks_path}  ${jks_password}  ${expected_jks_path}
+    ${exit_code}=  Run Merger Container  ${DOCKER_MERGER_IMAGE}  ${MERGER_CONTAINER_NAME}  ${env_file}
+    ${files_equal}=  Assert Jks Keystores Equal  ${jks_path}  ${jks_password}  ${expected_jks_path}
+    Remove Merger Container And Save Logs  ${MERGER_CONTAINER_NAME}  positive_path
+    Should Be Equal As Strings  ${exit_code}  ${expected_exit_code}  Client return unexpected exit code return: ${exitcode} , but expected: ${expected_exit_code}
+    Should Be True  ${files_equal}
+
 Run Trust Merger And Merge Truststore Files To Pem
     [Documentation]  Run Truststore Merger Container And Validate Exit Code And Files
     [Arguments]  ${env_file}  ${expected_exit_code}  ${pem_path}  ${expected_pem_path}
index f954c3a..41e55cf 100644 (file)
@@ -79,10 +79,10 @@ Trust Merger fails when only one extra optional env is set
 Trust Merger's Copier successfully backs up files
     [Tags]      OOM-TRUST-STORE-MERGER
     [Documentation]  Run with valid env file and expect successfully backed up file
-    Run Trust Merger And Merge Truststore Files To Jks  ${ENV_FILE_EXTRA_OPTIONAL_ENVS}  ${EXITCODE_SUCCESS}  ${JKS_KEYSTORE_MOUNT_PATH}  ${KEYSTORE_JKS_PASS}  ${JKSBAK_KEYSTORE_EXPECTED_PATH}
+    Run Trust Merger And Check Copied Keystore Files  ${ENV_FILE_EXTRA_OPTIONAL_ENVS}  ${EXITCODE_SUCCESS}  ${JKS_KEYSTORE_MOUNT_PATH}  ${KEYSTORE_JKS_PASS}  ${JKSBAK_KEYSTORE_EXPECTED_PATH}
 
 Trust Merger's Copier successfully copies file
     [Tags]      OOM-TRUST-STORE-MERGER
     [Documentation]  Run with valid env file and expect successfully copied file
-    Run Trust Merger And Merge Truststore Files To Jks  ${ENV_FILE_EXTRA_OPTIONAL_ENVS}  ${EXITCODE_SUCCESS}  ${JKS_KEYSTORE_MOUNT_PATH}  ${KEYSTORE_JKS_PASS}  ${JKS_KEYSTORE_EXPECTED_PATH}
+    Run Trust Merger And Check Copied Keystore Files  ${ENV_FILE_EXTRA_OPTIONAL_ENVS}  ${EXITCODE_SUCCESS}  ${JKS_KEYSTORE_MOUNT_PATH}  ${KEYSTORE_JKS_PASS}  ${JKS_KEYSTORE_EXPECTED_PATH}