aboutsummaryrefslogtreecommitdiffstats
path: root/tests/oom-platform-cert-service/postprocessor
diff options
context:
space:
mode:
Diffstat (limited to 'tests/oom-platform-cert-service/postprocessor')
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jksbin0 -> 2560 bytes
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks.bakbin0 -> 2560 bytes
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/jksAndPemAndP12.jksbin0 -> 3923 bytes
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/pemAndP12.pem63
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_different_lists_size.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_duplicated_aliases.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_certs.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_file.env0
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_keystore_destination_path.env3
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_passwords.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_extension.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_file_password_pair.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_keystore_source_paths.env4
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_password_path.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/invalid_truststore_paths.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/empty.pem0
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.jksbin0 -> 2560 bytes
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.pass1
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.jksbin0 -> 1413 bytes
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.p12bin0 -> 1530 bytes
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.pem28
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreJks.pass1
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreP12.pass1
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/valid_envs_and_extra_optional.env4
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/valid_jks_pem_p12.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/valid_pem_p12.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/assets/valid_single_truststore.env2
-rw-r--r--tests/oom-platform-cert-service/postprocessor/certservice-postprocessor-test.robot88
-rw-r--r--tests/oom-platform-cert-service/postprocessor/libraries/EnvsReader.py11
-rw-r--r--tests/oom-platform-cert-service/postprocessor/libraries/JksValidator.py28
-rw-r--r--tests/oom-platform-cert-service/postprocessor/libraries/PemTruststoreValidator.py19
-rw-r--r--tests/oom-platform-cert-service/postprocessor/libraries/TrustMergerManager.py47
-rw-r--r--tests/oom-platform-cert-service/postprocessor/resources/test-keywords.robot44
-rw-r--r--tests/oom-platform-cert-service/postprocessor/resources/test-properties.robot62
34 files changed, 426 insertions, 0 deletions
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks b/tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks
new file mode 100644
index 00000000..390f2410
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks
Binary files differ
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks.bak b/tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks.bak
new file mode 100644
index 00000000..390f2410
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/expected_keystores/keystore.jks.bak
Binary files differ
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/jksAndPemAndP12.jks b/tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/jksAndPemAndP12.jks
new file mode 100644
index 00000000..1c9f111a
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/jksAndPemAndP12.jks
Binary files differ
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/pemAndP12.pem b/tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/pemAndP12.pem
new file mode 100644
index 00000000..978e682d
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/expected_truststores/pemAndP12.pem
@@ -0,0 +1,63 @@
+-----BEGIN CERTIFICATE-----
+MIIEszCCAxugAwIBAgIUZrzliCEcld8Q7Fa20QOooFrkewAwDQYJKoZIhvcNAQEL
+BQAwYTEjMCEGCgmSJomT8ixkAQEME2MtMGI4NDYyNzkzMDkyYzFhZGYxFTATBgNV
+BAMMDE1hbmFnZW1lbnRDQTEjMCEGA1UECgwaRUpCQ0EgQ29udGFpbmVyIFF1aWNr
+c3RhcnQwHhcNMjAwNzE1MTI1NTI1WhcNMzAwNzE1MTI1NTI1WjBhMSMwIQYKCZIm
+iZPyLGQBAQwTYy0wYjg0NjI3OTMwOTJjMWFkZjEVMBMGA1UEAwwMTWFuYWdlbWVu
+dENBMSMwIQYDVQQKDBpFSkJDQSBDb250YWluZXIgUXVpY2tzdGFydDCCAaIwDQYJ
+KoZIhvcNAQEBBQADggGPADCCAYoCggGBAPKU+p62gXve2rCo2ojyyKcy9T/yEZJi
+9eZJoawets18FNKzWgXDz3ZK+dgc8hVHZahmIzfh9ovcEALYvCx1bLKN5tqbV7O0
+lUFGI+DGlP9QzGKopCh/uMXas4/lfVNogEB7cXu62ak6FuIuaKHETeqez5wC0d1d
+KcilG4loaN3tGXn8j1rnUq1fVu4QyxYfDekRzFiLOvdGeYfZlMkGcVYq3jDV9/sH
+5wKUKIxRwa+t1GlvzJqjVY6K3UvxS8ZBrNYTAtsvI/s6fd8Ah4FIM0Zsc8X1CIb4
+rxqhU6CDx1fQCgKyO6FG/3kVA9Y6+VLeRXsa/VaZxRwQWn0XfVrVpajiD+q3m9xd
+/NJUEAu1xEyfZw43ZSduGjrf5pwHR871noo+7pEbTDlM92ktDFW3go1DowrhEUlf
+XaU6C25yuzThl8f9pFD9/Bo82nHL5n8BENLCmaYrioVWQBAmrQKo1Y3uFgY+fP7y
+CL1POlJTuoXO++KhnEvhGfiIVBlzwdBATwIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
+AQH/MB8GA1UdIwQYMBaAFAZ6Sy3QQ0dNORdnfg5ppmOI6ngpMB0GA1UdDgQWBBQG
+ekst0ENHTTkXZ34OaaZjiOp4KTAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL
+BQADggGBAM8MyROdYt0458uCRM/8KZYU9q5xRDGXUGXVpEcGyu1hVlnzlnv7YJSX
+BWQenl092IVM7B0hsttpQIAXK4lS3hQ1fTaYWub0TPbK7xORGwi2uTDEagWXMc5e
+c2J6Sb9IFl2UqX8cERRCJNuENnuf10MU3rXa2TfydaELDXxr49KPPx3tgl/OfbtY
+MmFWLiyxo1jIZ/LeIiaN1m0OtGskkR8TF2D/ZA7YPzEWl2R3PhYNR1gkfAtYPWya
+DTXgiQwXuWDhdSTqiN3QuxRDVXFiQgoV0wqjgkqh4NiOXWB2ryaPvqiYRCvoM6Ly
+OcYy4LidGz9J+jQGAJPh4fI/1G4SgwVAT0bgYREy4IP6Y8R4zGoU0rGKnknfL70E
+t4Xm2ASu5jEcne2l1UOPPctFmei+QHmZ0c8V8HNmP5XRf+47OSi+ryCrRQfKrkyw
+UgvoB49yV3M1+IgCx18daEQCYal98hhQMn/3NVrOJeOjzDcF6Gxb679Cu/biZ8Wx
+li7RV0Xt1g==
+-----END CERTIFICATE-----
+Bag Attributes
+ friendlyName: trusted-certificate-1
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
+subject=UID = c-0b8462793092c1adf, CN = ManagementCA, O = EJBCA Container Quickstart
+
+issuer=UID = c-0b8462793092c1adf, CN = ManagementCA, O = EJBCA Container Quickstart
+
+-----BEGIN CERTIFICATE-----
+MIIEszCCAxugAwIBAgIUZrzliCEcld8Q7Fa20QOooFrkewAwDQYJKoZIhvcNAQEL
+BQAwYTEjMCEGCgmSJomT8ixkAQEME2MtMGI4NDYyNzkzMDkyYzFhZGYxFTATBgNV
+BAMMDE1hbmFnZW1lbnRDQTEjMCEGA1UECgwaRUpCQ0EgQ29udGFpbmVyIFF1aWNr
+c3RhcnQwHhcNMjAwNzE1MTI1NTI1WhcNMzAwNzE1MTI1NTI1WjBhMSMwIQYKCZIm
+iZPyLGQBAQwTYy0wYjg0NjI3OTMwOTJjMWFkZjEVMBMGA1UEAwwMTWFuYWdlbWVu
+dENBMSMwIQYDVQQKDBpFSkJDQSBDb250YWluZXIgUXVpY2tzdGFydDCCAaIwDQYJ
+KoZIhvcNAQEBBQADggGPADCCAYoCggGBAPKU+p62gXve2rCo2ojyyKcy9T/yEZJi
+9eZJoawets18FNKzWgXDz3ZK+dgc8hVHZahmIzfh9ovcEALYvCx1bLKN5tqbV7O0
+lUFGI+DGlP9QzGKopCh/uMXas4/lfVNogEB7cXu62ak6FuIuaKHETeqez5wC0d1d
+KcilG4loaN3tGXn8j1rnUq1fVu4QyxYfDekRzFiLOvdGeYfZlMkGcVYq3jDV9/sH
+5wKUKIxRwa+t1GlvzJqjVY6K3UvxS8ZBrNYTAtsvI/s6fd8Ah4FIM0Zsc8X1CIb4
+rxqhU6CDx1fQCgKyO6FG/3kVA9Y6+VLeRXsa/VaZxRwQWn0XfVrVpajiD+q3m9xd
+/NJUEAu1xEyfZw43ZSduGjrf5pwHR871noo+7pEbTDlM92ktDFW3go1DowrhEUlf
+XaU6C25yuzThl8f9pFD9/Bo82nHL5n8BENLCmaYrioVWQBAmrQKo1Y3uFgY+fP7y
+CL1POlJTuoXO++KhnEvhGfiIVBlzwdBATwIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
+AQH/MB8GA1UdIwQYMBaAFAZ6Sy3QQ0dNORdnfg5ppmOI6ngpMB0GA1UdDgQWBBQG
+ekst0ENHTTkXZ34OaaZjiOp4KTAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL
+BQADggGBAM8MyROdYt0458uCRM/8KZYU9q5xRDGXUGXVpEcGyu1hVlnzlnv7YJSX
+BWQenl092IVM7B0hsttpQIAXK4lS3hQ1fTaYWub0TPbK7xORGwi2uTDEagWXMc5e
+c2J6Sb9IFl2UqX8cERRCJNuENnuf10MU3rXa2TfydaELDXxr49KPPx3tgl/OfbtY
+MmFWLiyxo1jIZ/LeIiaN1m0OtGskkR8TF2D/ZA7YPzEWl2R3PhYNR1gkfAtYPWya
+DTXgiQwXuWDhdSTqiN3QuxRDVXFiQgoV0wqjgkqh4NiOXWB2ryaPvqiYRCvoM6Ly
+OcYy4LidGz9J+jQGAJPh4fI/1G4SgwVAT0bgYREy4IP6Y8R4zGoU0rGKnknfL70E
+t4Xm2ASu5jEcne2l1UOPPctFmei+QHmZ0c8V8HNmP5XRf+47OSi+ryCrRQfKrkyw
+UgvoB49yV3M1+IgCx18daEQCYal98hhQMn/3NVrOJeOjzDcF6Gxb679Cu/biZ8Wx
+li7RV0Xt1g==
+-----END CERTIFICATE-----
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_different_lists_size.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_different_lists_size.env
new file mode 100644
index 00000000..9edfaa41
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_different_lists_size.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks:/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass:/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_duplicated_aliases.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_duplicated_aliases.env
new file mode 100644
index 00000000..f98b3366
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_duplicated_aliases.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks:/var/certs/truststore.jks
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass:/var/certs/truststoreJks.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_certs.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_certs.env
new file mode 100644
index 00000000..95c00fc2
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_certs.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/empty.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=:/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_file.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_file.env
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_file.env
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_keystore_destination_path.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_keystore_destination_path.env
new file mode 100644
index 00000000..526357b0
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_keystore_destination_path.env
@@ -0,0 +1,3 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks:/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass::/var/certs/truststoreP12.pass
+KEYSTORE_SOURCE_PATHS=/var/certs/external/keystore13.jks
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_passwords.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_passwords.env
new file mode 100644
index 00000000..840728bb
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_empty_passwords.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks:/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_extension.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_extension.env
new file mode 100644
index 00000000..5b971616
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_extension.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.txt:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass:/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_file_password_pair.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_file_password_pair.env
new file mode 100644
index 00000000..1a195116
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_file_password_pair.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_keystore_source_paths.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_keystore_source_paths.env
new file mode 100644
index 00000000..7090151c
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_keystore_source_paths.env
@@ -0,0 +1,4 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks:/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass::/var/certs/truststoreP12.pass
+KEYSTORE_SOURCE_PATHS=/var/certs/external/keystore13.jks
+KEYSTORE_DESTINATION_PATHS=/var/certs/cert.jks
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_password_path.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_password_path.env
new file mode 100644
index 00000000..b397f9ac
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_password_path.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks_invalid.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/invalid_truststore_paths.env b/tests/oom-platform-cert-service/postprocessor/assets/invalid_truststore_paths.env
new file mode 100644
index 00000000..52fa88c6
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/invalid_truststore_paths.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/invalid/truststore.jks:/invalid/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass:/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/empty.pem b/tests/oom-platform-cert-service/postprocessor/assets/truststores/empty.pem
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/empty.pem
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.jks b/tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.jks
new file mode 100644
index 00000000..390f2410
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.jks
Binary files differ
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.pass b/tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.pass
new file mode 100644
index 00000000..8b11c5b6
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/external/keystore.pass
@@ -0,0 +1 @@
+wgg2_fLSQ8I4sLfyUOCC7uYn \ No newline at end of file
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.jks b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.jks
new file mode 100644
index 00000000..3bd85a06
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.jks
Binary files differ
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.p12 b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.p12
new file mode 100644
index 00000000..3a98c4a2
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.p12
Binary files differ
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.pem b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.pem
new file mode 100644
index 00000000..8815d6cb
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststore.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEszCCAxugAwIBAgIUZrzliCEcld8Q7Fa20QOooFrkewAwDQYJKoZIhvcNAQEL
+BQAwYTEjMCEGCgmSJomT8ixkAQEME2MtMGI4NDYyNzkzMDkyYzFhZGYxFTATBgNV
+BAMMDE1hbmFnZW1lbnRDQTEjMCEGA1UECgwaRUpCQ0EgQ29udGFpbmVyIFF1aWNr
+c3RhcnQwHhcNMjAwNzE1MTI1NTI1WhcNMzAwNzE1MTI1NTI1WjBhMSMwIQYKCZIm
+iZPyLGQBAQwTYy0wYjg0NjI3OTMwOTJjMWFkZjEVMBMGA1UEAwwMTWFuYWdlbWVu
+dENBMSMwIQYDVQQKDBpFSkJDQSBDb250YWluZXIgUXVpY2tzdGFydDCCAaIwDQYJ
+KoZIhvcNAQEBBQADggGPADCCAYoCggGBAPKU+p62gXve2rCo2ojyyKcy9T/yEZJi
+9eZJoawets18FNKzWgXDz3ZK+dgc8hVHZahmIzfh9ovcEALYvCx1bLKN5tqbV7O0
+lUFGI+DGlP9QzGKopCh/uMXas4/lfVNogEB7cXu62ak6FuIuaKHETeqez5wC0d1d
+KcilG4loaN3tGXn8j1rnUq1fVu4QyxYfDekRzFiLOvdGeYfZlMkGcVYq3jDV9/sH
+5wKUKIxRwa+t1GlvzJqjVY6K3UvxS8ZBrNYTAtsvI/s6fd8Ah4FIM0Zsc8X1CIb4
+rxqhU6CDx1fQCgKyO6FG/3kVA9Y6+VLeRXsa/VaZxRwQWn0XfVrVpajiD+q3m9xd
+/NJUEAu1xEyfZw43ZSduGjrf5pwHR871noo+7pEbTDlM92ktDFW3go1DowrhEUlf
+XaU6C25yuzThl8f9pFD9/Bo82nHL5n8BENLCmaYrioVWQBAmrQKo1Y3uFgY+fP7y
+CL1POlJTuoXO++KhnEvhGfiIVBlzwdBATwIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
+AQH/MB8GA1UdIwQYMBaAFAZ6Sy3QQ0dNORdnfg5ppmOI6ngpMB0GA1UdDgQWBBQG
+ekst0ENHTTkXZ34OaaZjiOp4KTAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL
+BQADggGBAM8MyROdYt0458uCRM/8KZYU9q5xRDGXUGXVpEcGyu1hVlnzlnv7YJSX
+BWQenl092IVM7B0hsttpQIAXK4lS3hQ1fTaYWub0TPbK7xORGwi2uTDEagWXMc5e
+c2J6Sb9IFl2UqX8cERRCJNuENnuf10MU3rXa2TfydaELDXxr49KPPx3tgl/OfbtY
+MmFWLiyxo1jIZ/LeIiaN1m0OtGskkR8TF2D/ZA7YPzEWl2R3PhYNR1gkfAtYPWya
+DTXgiQwXuWDhdSTqiN3QuxRDVXFiQgoV0wqjgkqh4NiOXWB2ryaPvqiYRCvoM6Ly
+OcYy4LidGz9J+jQGAJPh4fI/1G4SgwVAT0bgYREy4IP6Y8R4zGoU0rGKnknfL70E
+t4Xm2ASu5jEcne2l1UOPPctFmei+QHmZ0c8V8HNmP5XRf+47OSi+ryCrRQfKrkyw
+UgvoB49yV3M1+IgCx18daEQCYal98hhQMn/3NVrOJeOjzDcF6Gxb679Cu/biZ8Wx
+li7RV0Xt1g==
+-----END CERTIFICATE-----
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreJks.pass b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreJks.pass
new file mode 100644
index 00000000..817b6194
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreJks.pass
@@ -0,0 +1 @@
+WkTGRmhSe%PM;it?NRY888Ak \ No newline at end of file
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreP12.pass b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreP12.pass
new file mode 100644
index 00000000..48036abd
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/truststores/truststoreP12.pass
@@ -0,0 +1 @@
+0TZd_x#qp$78hJsm0wzc1dm_ \ No newline at end of file
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/valid_envs_and_extra_optional.env b/tests/oom-platform-cert-service/postprocessor/assets/valid_envs_and_extra_optional.env
new file mode 100644
index 00000000..928bf637
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/valid_envs_and_extra_optional.env
@@ -0,0 +1,4 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=:/var/certs/truststoreP12.pass
+KEYSTORE_SOURCE_PATHS=/var/certs/external/keystore.jks:/var/certs/external/keystore.pass
+KEYSTORE_DESTINATION_PATHS=/var/certs/keystore.jks:/var/certs/keystore.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/valid_jks_pem_p12.env b/tests/oom-platform-cert-service/postprocessor/assets/valid_jks_pem_p12.env
new file mode 100644
index 00000000..4afa1a27
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/valid_jks_pem_p12.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks:/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass::/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/valid_pem_p12.env b/tests/oom-platform-cert-service/postprocessor/assets/valid_pem_p12.env
new file mode 100644
index 00000000..e0240a74
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/valid_pem_p12.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.pem:/var/certs/truststore.p12
+TRUSTSTORES_PASSWORDS_PATHS=:/var/certs/truststoreP12.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/assets/valid_single_truststore.env b/tests/oom-platform-cert-service/postprocessor/assets/valid_single_truststore.env
new file mode 100644
index 00000000..66b6f66f
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/assets/valid_single_truststore.env
@@ -0,0 +1,2 @@
+TRUSTSTORES_PATHS=/var/certs/truststore.jks
+TRUSTSTORES_PASSWORDS_PATHS=/var/certs/truststoreJks.pass
diff --git a/tests/oom-platform-cert-service/postprocessor/certservice-postprocessor-test.robot b/tests/oom-platform-cert-service/postprocessor/certservice-postprocessor-test.robot
new file mode 100644
index 00000000..67d1af60
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/certservice-postprocessor-test.robot
@@ -0,0 +1,88 @@
+*** Settings ***
+
+Documentation Certifcate Post Processors test case scenarios
+Library RequestsLibrary
+Resource ./resources/test-keywords.robot
+
+*** Test Cases ***
+
+Trust Merger fails when file extension is invalid
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with invalid truststore extension env and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_INVALID_FILE_EXTENSION} ${EXITCODE_CERTIFICATES_PATHS_VALIDATION_EXCEPTION}
+
+Trust Merger fails when a variable is empty
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with empty truststore password path env and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_EMPTY_PASSWORDS} ${EXITCODE_CERTIFICATES_PATHS_VALIDATION_EXCEPTION}
+
+Trust Merger fails when truststore and passwords envs not provided
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with invalid empty envs and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_EMPTY} ${EXITCODE_CONFIGURATION_EXCEPTION}
+
+Trust Merger fails when list sizes are different
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with different truststore and password envs size and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_INVALID_FILE_LIST_SIZE} ${EXITCODE_CONFIGURATION_EXCEPTION}
+
+Trust Merger fails when truststore paths are invalid
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with invalid truststore path and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_INVALID_TRUSTSTORE_PATHS} ${EXITCODE_TRUSTSTORE_FILE_FACTORY_EXCEPTION}
+
+Trust Merger fails when password path is invalid
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with invalid password path and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_INVALID_PASSWORD_PATHS} ${EXITCODE_PASSWORD_READER_EXCEPTION}
+
+Trust Merger fails when password file pair is invalid
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with incorrect password env and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_INVALID_PASSWORD} ${EXITCODE_TRUSTSTORE_LOAD_FILE_EXCEPTION}
+
+Trust Merger fails when pem does not contain cert
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with empty pem truststore and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_EMPTY_CERTS} ${EXITCODE_MISSING_TRUSTSTORE_EXCEPTIONSUCCESS}
+
+Trust Merger fails when aliases are duplicated
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with duplicated aliases in truststores and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_DUPLICATED_ALIASES} ${EXITCODE_ALIAS_CONFLICT_EXCEPTION}
+
+Trust Merger merges successfully jks pem p12
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with valid env file and expect merged certs from jks, pem and p12
+ Run Trust Merger And Merge Truststore Files To Jks ${ENV_FILE_JKS_PEM_P12} ${EXITCODE_SUCCESS} ${JKS_TRUSTSTORE_MOUNT_PATH} ${TRUSTSTORE_JKS_PASS} ${JKS_TRUSTSTORE_EXPECTED_PATH}
+
+Trust Merger merges successfully pem p12
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with valid env file and expect merged certs from pem and p12
+ Run Trust Merger And Merge Truststore Files To Pem ${ENV_FILE_PEM_P12} ${EXITCODE_SUCCESS} ${PEM_TRUSTSTORE_MOUNT_PATH} ${PEM_TRUSTSTORE_EXPECTED_PATH}
+
+Trust Merger ends successfully with single truststore
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with one truststore in env file and expect code 0
+ Run Trust Merger And Merge Truststore Files To Jks ${ENV_FILE_SINGLE_TRUSTSTORE} ${EXITCODE_SUCCESS} ${JKS_TRUSTSTORE_MOUNT_PATH} ${TRUSTSTORE_JKS_PASS} ${TRUSTSTORE_JKS}
+
+Trust Merger fails when file to copy does not exist
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with invalid extra optional env as a path to file and expect error code
+ Run Trust Merger And Expect Error ${ENV_FILE_INVALID_KEYSTORE_SOURCE_PATHS} ${EXITCODE_KEYSTORE_NOT_EXIST_EXCEPTION}
+
+Trust Merger fails when only one extra optional env is set
+ [Tags] OOM-TRUST-STORE-MERGER
+ [Documentation] Run with empty extra optional env and expect code
+ Run Trust Merger And Expect Error ${ENV_FILE_EMPTY_KEYSTORE_DESTINATION_PATH} ${EXITCODE_CONFIGURATION_EXCEPTION}
+
+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 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 Check Copied Keystore Files ${ENV_FILE_EXTRA_OPTIONAL_ENVS} ${EXITCODE_SUCCESS} ${JKS_KEYSTORE_MOUNT_PATH} ${KEYSTORE_JKS_PASS} ${JKS_KEYSTORE_EXPECTED_PATH}
+
diff --git a/tests/oom-platform-cert-service/postprocessor/libraries/EnvsReader.py b/tests/oom-platform-cert-service/postprocessor/libraries/EnvsReader.py
new file mode 100644
index 00000000..cc60eed6
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/libraries/EnvsReader.py
@@ -0,0 +1,11 @@
+
+class EnvsReader:
+
+ def read_env_list_from_file(self, path):
+ f = open(path, "r")
+ r_list = []
+ for line in f:
+ line = line.strip()
+ if line[0] != "#":
+ r_list.append(line)
+ return r_list
diff --git a/tests/oom-platform-cert-service/postprocessor/libraries/JksValidator.py b/tests/oom-platform-cert-service/postprocessor/libraries/JksValidator.py
new file mode 100644
index 00000000..983f66bb
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/libraries/JksValidator.py
@@ -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
diff --git a/tests/oom-platform-cert-service/postprocessor/libraries/PemTruststoreValidator.py b/tests/oom-platform-cert-service/postprocessor/libraries/PemTruststoreValidator.py
new file mode 100644
index 00000000..8dc9623d
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/libraries/PemTruststoreValidator.py
@@ -0,0 +1,19 @@
+import re
+
+BEGIN_CERT = "-----BEGIN CERTIFICATE-----"
+END_CERT = "-----END CERTIFICATE-----"
+
+class PemTruststoreValidator:
+
+ def assert_pem_truststores_equal(self, result_pem_path, expected_pem_path):
+ result_certs = self.get_list_of_pem_certificates(result_pem_path)
+ expected_certs = self.get_list_of_pem_certificates(expected_pem_path)
+ result_certs.sort()
+ expected_certs.sort()
+ if len(result_certs) != len(expected_certs):
+ return False
+ return result_certs == expected_certs
+
+
+ def get_list_of_pem_certificates(self, path):
+ return re.findall(BEGIN_CERT + '(.+?)' + END_CERT, open(path, 'rb').read(), re.DOTALL)
diff --git a/tests/oom-platform-cert-service/postprocessor/libraries/TrustMergerManager.py b/tests/oom-platform-cert-service/postprocessor/libraries/TrustMergerManager.py
new file mode 100644
index 00000000..f7a493c4
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/libraries/TrustMergerManager.py
@@ -0,0 +1,47 @@
+import docker
+import os
+import shutil
+from EnvsReader import EnvsReader
+from docker.types import Mount
+
+ARCHIVES_PATH = os.getenv("WORKSPACE") + "/archives/"
+
+
+class TrustMergerManager:
+
+ def __init__(self, mount_path, truststores_path):
+ self.mount_path = mount_path
+ self.truststores_path = truststores_path
+
+ def run_merger_container(self, merger_image, merger_name, path_to_env):
+ self.remove_mount_dir()
+ shutil.copytree(self.truststores_path, self.mount_path)
+ client = docker.from_env()
+ environment = EnvsReader().read_env_list_from_file(path_to_env)
+ container = client.containers.run(
+ image=merger_image,
+ name=merger_name,
+ environment=environment,
+ user='root', # Run container as root to avoid permission issues with volume mount access
+ mounts=[Mount(target='/var/certs', source=self.mount_path, type='bind')],
+ detach=True
+ )
+ exitcode = container.wait()
+ return exitcode
+
+ def create_mount_dir(self):
+ if not os.path.exists(self.mount_path):
+ os.makedirs(self.mount_path)
+
+ def remove_mount_dir(self):
+ if os.path.exists(self.mount_path):
+ shutil.rmtree(self.mount_path)
+
+ def remove_merger_container_and_save_logs(self, container_name, log_file_name):
+ client = docker.from_env()
+ container = client.containers.get(container_name)
+ text_file = open(ARCHIVES_PATH + "merger_container_" + log_file_name + ".log", "w")
+ text_file.write(container.logs())
+ text_file.close()
+ container.remove()
+ self.remove_mount_dir()
diff --git a/tests/oom-platform-cert-service/postprocessor/resources/test-keywords.robot b/tests/oom-platform-cert-service/postprocessor/resources/test-keywords.robot
new file mode 100644
index 00000000..514e2391
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/resources/test-keywords.robot
@@ -0,0 +1,44 @@
+*** Settings ***
+
+Resource ../../../common.robot
+Resource ./test-properties.robot
+Library ../libraries/TrustMergerManager.py ${MOUNT_PATH} ${TRUSTSTORES_PATH}
+Library ../libraries/JksValidator.py
+Library ../libraries/PemTruststoreValidator.py
+
+*** Keywords ***
+
+Run Trust Merger And Expect Error
+ [Documentation] Run Truststore Merger Container And Validate Exit Code
+ [Arguments] ${env_file} ${expected_exit_code}
+ ${exit_code}= Run Merger Container ${DOCKER_MERGER_IMAGE} ${MERGER_CONTAINER_NAME} ${env_file}
+ Remove Merger Container And Save Logs ${MERGER_CONTAINER_NAME} negative_path
+ 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 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}
+ 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 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}
+ ${exit_code}= Run Merger Container ${DOCKER_MERGER_IMAGE} ${MERGER_CONTAINER_NAME} ${env_file}
+ ${files_equal}= Assert Pem Truststores Equal ${pem_path} ${expected_pem_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}
+
diff --git a/tests/oom-platform-cert-service/postprocessor/resources/test-properties.robot b/tests/oom-platform-cert-service/postprocessor/resources/test-properties.robot
new file mode 100644
index 00000000..ab4c18ba
--- /dev/null
+++ b/tests/oom-platform-cert-service/postprocessor/resources/test-properties.robot
@@ -0,0 +1,62 @@
+*** Variables ***
+
+${DOCKER_MERGER_IMAGE} nexus3.onap.org:10001/onap/org.onap.oom.platform.cert-service.oom-certservice-post-processor:latest
+${MERGER_CONTAINER_NAME} %{CertServicePostProcessorContainerName}
+${BASE_PATH} %{WORKSPACE}/tests/oom-platform-cert-service/postprocessor
+${MOUNT_PATH} ${BASE_PATH}/tmp
+${TRUSTSTORES_PATH} ${BASE_PATH}/assets/truststores
+${EXPECTED_TRUSTSTORES_PATH} ${BASE_PATH}/assets/expected_truststores
+
+${JKS_TRUSTSTORE_MOUNT_PATH} ${BASE_PATH}/tmp/truststore.jks
+${JKS_PASSWORD_MOUNT_PATH} ${BASE_PATH}/tmp/truststoreJks.pass
+${P12_TRUSTSTORE_MOUNT_PATH} ${BASE_PATH}/tmp/truststore.p12
+${P12_PASSWORD_MOUNT_PATH} ${BASE_PATH}/tmp/truststoreP12.pass
+${PEM_TRUSTSTORE_MOUNT_PATH} ${BASE_PATH}/tmp/truststore.pem
+${JKS_KEYSTORE_MOUNT_PATH} ${BASE_PATH}/tmp/external/keystore.jks
+
+${JKS_TRUSTSTORE_EXPECTED_PATH} ${BASE_PATH}/assets/expected_truststores/jksAndPemAndP12.jks
+${PEM_TRUSTSTORE_EXPECTED_PATH} ${BASE_PATH}/assets/expected_truststores/pemAndP12.pem
+${JKSBAK_KEYSTORE_EXPECTED_PATH} ${BASE_PATH}/assets/expected_keystores/keystore.jks.bak
+${JKS_KEYSTORE_EXPECTED_PATH} ${BASE_PATH}/assets/expected_keystores/keystore.jks
+
+${ENV_FILE_EMPTY} ${BASE_PATH}/assets/invalid_empty_file.env
+${ENV_FILE_INVALID_FILE_LIST_SIZE} ${BASE_PATH}/assets/invalid_different_lists_size.env
+${ENV_FILE_EMPTY_PASSWORDS} ${BASE_PATH}/assets/invalid_empty_passwords.env
+${ENV_FILE_INVALID_PASSWORD_PATHS} ${BASE_PATH}/assets/invalid_password_path.env
+${ENV_FILE_INVALID_TRUSTSTORE_PATHS} ${BASE_PATH}/assets/invalid_truststore_paths.env
+${ENV_FILE_INVALID_PASSWORD} ${BASE_PATH}/assets/invalid_file_password_pair.env
+${ENV_FILE_INVALID_FILE_EXTENSION} ${BASE_PATH}/assets/invalid_extension.env
+${ENV_FILE_DUPLICATED_ALIASES} ${BASE_PATH}/assets/invalid_duplicated_aliases.env
+${ENV_FILE_EMPTY_CERTS} ${BASE_PATH}/assets/invalid_empty_certs.env
+${ENV_FILE_JKS_PEM_P12} ${BASE_PATH}/assets/valid_jks_pem_p12.env
+${ENV_FILE_PEM_P12} ${BASE_PATH}/assets/valid_pem_p12.env
+${ENV_FILE_SINGLE_TRUSTSTORE} ${BASE_PATH}/assets/valid_single_truststore.env
+${ENV_FILE_INVALID_KEYSTORE_SOURCE_PATHS} ${BASE_PATH}/assets/invalid_keystore_source_paths.env
+${ENV_FILE_EMPTY_KEYSTORE_DESTINATION_PATH} ${BASE_PATH}/assets/invalid_empty_keystore_destination_path.env
+${ENV_FILE_EXTRA_OPTIONAL_ENVS} ${BASE_PATH}/assets/valid_envs_and_extra_optional.env
+
+${KEYSTORE_JKS} ${BASE_PATH}/assets/truststores/external/keystore.jks
+${KEYSTORE_JKS_PASS} ${BASE_PATH}/assets/truststores/external/keystore.pass
+${TRUSTSTORE_JKS} ${BASE_PATH}/assets/truststores/truststore.jks
+${TRUSTSTORE_JKS_PASS} ${BASE_PATH}/assets/truststores/truststoreJks.pass
+${TRUSTSTORE_P12} ${BASE_PATH}/assets/truststores/truststore.p12
+${TRUSTSTORE_P12_PASS} ${BASE_PATH}/assets/truststores/truststore.pass
+${TRUSTSTORE_PEM} ${BASE_PATH}/assets/truststores/truststore.pem
+
+${EXITCODE_SUCCESS} 0
+${EXITCODE_CERTIFICATES_PATHS_VALIDATION_EXCEPTION} 1
+${EXITCODE_CONFIGURATION_EXCEPTION} 2
+${EXITCODE_TRUSTSTORE_FILE_FACTORY_EXCEPTION} 3
+${EXITCODE_PASSWORD_READER_EXCEPTION} 4
+${EXITCODE_CREATE_BACKUP_EXCEPTION} 5
+${EXITCODE_KEYSTORE_INSTANCE_EXCEPTION} 6
+${EXITCODE_TRUSTSTORE_LOAD_FILE_EXCEPTION} 7
+${EXITCODE_TRUSTSTORE_DATA_OPERATION_EXCEPTION} 8
+${EXITCODE_MISSING_TRUSTSTORE_EXCEPTIONSUCCESS} 9
+${EXITCODE_ALIAS_CONFLICT_EXCEPTION} 10
+${EXITCODE_WRITE_TRUSTSTORE_FILE_EXCEPTION} 11
+${EXITCODE_KEYSTORE_FILE_COPY_EXCEPTION} 12
+${EXITCODE_KEYSTORE_NOT_EXIST_EXCEPTION} 13
+${EXITCODE_UNEXPECTED_EXCEPTION} 99
+
+