X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=certServiceClient%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Faaf%2Fcertservice%2Fclient%2Fcertification%2Fconversion%2FPemConverterTest.java;fp=certServiceClient%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Faaf%2Fcertservice%2Fclient%2Fcertification%2Fconversion%2FPemToPKCS12ConverterTest.java;h=0d67fba7c371cd26e219ddae91aeab55534d2760;hb=0b278343630c1e3c7c92b3e5094570748692666e;hp=350434092ddfcc5a1a6069e00f3588851e2dacd4;hpb=212038b654728b79aa647e08da2562484c63c883;p=oom%2Fplatform%2Fcert-service.git diff --git a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/conversion/PemToPKCS12ConverterTest.java b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/conversion/PemConverterTest.java similarity index 76% rename from certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/conversion/PemToPKCS12ConverterTest.java rename to certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/conversion/PemConverterTest.java index 35043409..0d67fba7 100644 --- a/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/conversion/PemToPKCS12ConverterTest.java +++ b/certServiceClient/src/test/java/org/onap/aaf/certservice/client/certification/conversion/PemConverterTest.java @@ -42,10 +42,12 @@ import java.security.cert.CertificateException; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.onap.aaf.certservice.client.certification.EncryptionAlgorithmConstants; -import org.onap.aaf.certservice.client.certification.exception.PemToPKCS12ConverterException; +import org.onap.aaf.certservice.client.certification.exception.PemConversionException; -class PemToPKCS12ConverterTest { +class PemConverterTest { private static final String RESOURCES_PATH = "src/test/resources"; private static final String CERT1_PATH = RESOURCES_PATH + "/cert1.pem"; @@ -55,6 +57,7 @@ class PemToPKCS12ConverterTest { private static final String EXPECTED_TRUSTSTORE_PATH = RESOURCES_PATH + "/expectedTruststore.jks"; private static final String PKCS12 = "PKCS12"; private static final String PKCS8 = "PKCS#8"; + private static final String JKS = "JKS"; private static final String KEY_ERROR_MSG = "java.security.KeyStoreException: Key protection algorithm not found: java.lang.NullPointerException"; private static final String CERTIFICATES_ERROR_MSG = "The certificate couldn't be parsed correctly. certificate1"; private static final String PASSWORD_ERROR_MSG = "Password should be min. 16 chars long and should contain only alphanumeric characters and special characters like Underscore (_), Dollar ($) and Pound (#)"; @@ -66,15 +69,16 @@ class PemToPKCS12ConverterTest { key = Files.readAllBytes(Path.of(KEY_PATH)); } - @Test - void convertKeystoreShouldReturnKeystoreWithGivenPrivateKeyAndCertificateChain() - throws IOException, CertificateException, NoSuchAlgorithmException, KeyStoreException, UnrecoverableKeyException, PemToPKCS12ConverterException { + @ParameterizedTest + @ValueSource(strings = {PKCS12, JKS}) + void convertKeystoreShouldReturnKeystoreWithGivenPrivateKeyAndCertificateChain(String conversionTarget) + throws IOException, CertificateException, NoSuchAlgorithmException, KeyStoreException, UnrecoverableKeyException, PemConversionException { // given final String alias = "keystore-entry"; final Password password = new Password("d9D_u8LooYaXH4G48DtN#vw0"); final List certificateChain = getCertificates(); - final PemToPKCS12Converter converter = new PemToPKCS12Converter(); - final KeyStore expectedKeyStore = KeyStore.getInstance(PKCS12); + final PemConverter converter = new PemConverter(conversionTarget); + final KeyStore expectedKeyStore = KeyStore.getInstance(conversionTarget); expectedKeyStore.load(new ByteArrayInputStream(Files.readAllBytes(Path.of(EXPECTED_KEYSTORE_PATH))), password.toCharArray()); final Certificate[] expectedChain = expectedKeyStore.getCertificateChain(alias); @@ -84,7 +88,7 @@ class PemToPKCS12ConverterTest { final byte[] result = converter.convertKeystore(certificateChain, password, alias, privateKey); // then - final KeyStore actualKeyStore = KeyStore.getInstance(PKCS12); + final KeyStore actualKeyStore = KeyStore.getInstance(conversionTarget); actualKeyStore.load(new ByteArrayInputStream(result), password.toCharArray()); final Certificate[] actualChain = actualKeyStore.getCertificateChain(alias); @@ -93,17 +97,18 @@ class PemToPKCS12ConverterTest { assertArrayEquals(expectedChain, actualChain); } - @Test - void convertKeystoreShouldThrowPemToPKCS12ConverterExceptionBecauseOfWrongPassword() throws IOException { + @ParameterizedTest + @ValueSource(strings = {PKCS12, JKS}) + void convertKeystoreShouldThrowPemConverterExceptionBecauseOfWrongPassword(String conversionTarget) throws IOException { // given final String alias = "keystore-entry"; final Password password = new Password("apple"); final List certificateChain = getCertificates(); - final PemToPKCS12Converter converter = new PemToPKCS12Converter(); + final PemConverter converter = new PemConverter(conversionTarget); privateKeyMockSetup(); // when - Exception exception = assertThrows(PemToPKCS12ConverterException.class, () -> + Exception exception = assertThrows(PemConversionException.class, () -> converter.convertKeystore(certificateChain, password, alias, privateKey) ); @@ -111,18 +116,19 @@ class PemToPKCS12ConverterTest { assertEquals(PASSWORD_ERROR_MSG, exception.getMessage()); } - @Test - void convertTruststoreShouldReturnTruststoreWithGivenCertificatesArray() - throws IOException, KeyStoreException, CertificateException, NoSuchAlgorithmException, PemToPKCS12ConverterException { + @ParameterizedTest + @ValueSource(strings = {PKCS12, JKS}) + void convertTruststoreShouldReturnTruststoreWithGivenCertificatesArray(String conversionTarget) + throws IOException, KeyStoreException, CertificateException, NoSuchAlgorithmException, PemConversionException { // given - final PemToPKCS12Converter converter = new PemToPKCS12Converter(); + final PemConverter converter = new PemConverter(conversionTarget); final String alias = "trusted-certificate-"; final String alias1 = alias + 1; final String alias2 = alias + 2; final Password password = new Password("9z6oFx1epRSCuBWU4Er8i_0y"); final List trustedCertificates = getCertificates(); - final KeyStore expectedTrustStore = KeyStore.getInstance(PKCS12); + final KeyStore expectedTrustStore = KeyStore.getInstance(conversionTarget); expectedTrustStore.load(new ByteArrayInputStream(Files.readAllBytes(Path.of(EXPECTED_TRUSTSTORE_PATH))), password.toCharArray()); @@ -130,7 +136,7 @@ class PemToPKCS12ConverterTest { final byte[] result = converter.convertTruststore(trustedCertificates, password, alias); // then - final KeyStore actualKeyStore = KeyStore.getInstance(PKCS12); + final KeyStore actualKeyStore = KeyStore.getInstance(conversionTarget); actualKeyStore.load(new ByteArrayInputStream(result), password.toCharArray()); assertTrue(actualKeyStore.containsAlias(alias1)); @@ -139,45 +145,47 @@ class PemToPKCS12ConverterTest { assertEquals(expectedTrustStore.getCertificate(alias2), actualKeyStore.getCertificate(alias2)); } - @Test - void convertTruststoreShouldThrowPemToPKCS12ConverterExceptionBecauseOfWrongPassword() throws IOException { + @ParameterizedTest + @ValueSource(strings = {PKCS12, JKS}) + void convertTruststoreShouldThrowPemConverterExceptionBecauseOfWrongPassword(String conversionTarget) throws IOException { // given final String alias = "trusted-certificate-"; final Password password = new Password("nokia"); final List trustedCertificates = getCertificates(); - final PemToPKCS12Converter converter = new PemToPKCS12Converter(); + final PemConverter converter = new PemConverter(conversionTarget); // when then assertThatThrownBy(() -> converter.convertTruststore(trustedCertificates, password, alias)) - .isInstanceOf(PemToPKCS12ConverterException.class).hasMessage(PASSWORD_ERROR_MSG); + .isInstanceOf(PemConversionException.class).hasMessage(PASSWORD_ERROR_MSG); } @Test - void convertKeystoreShouldThrowPemToPKCS12ConverterExceptionBecauseOfWrongPrivateKey() throws IOException { + void convertKeystoreShouldThrowPemConverterExceptionBecauseOfWrongPrivateKey() throws IOException { // given final String alias = "keystore-entry"; final Password password = new Password("d9D_u8LooYaXH4G48DtN#vw0"); final List certificateChain = getCertificates(); - final PemToPKCS12Converter converter = new PemToPKCS12Converter(); + final PemConverter converter = new PemConverter(PKCS12); // when then assertThatThrownBy(() -> converter.convertKeystore(certificateChain, password, alias, privateKey)) - .isInstanceOf(PemToPKCS12ConverterException.class).hasMessage(KEY_ERROR_MSG); + .isInstanceOf(PemConversionException.class).hasMessage(KEY_ERROR_MSG); } - @Test - void convertKeystoreShouldThrowPemToPKCS12ConverterExceptionBecauseOfWrongCertificates() { + @ParameterizedTest + @ValueSource(strings = {PKCS12, JKS}) + void convertKeystoreShouldThrowPemConverterExceptionBecauseOfWrongCertificates(String conversionTarget) { // given final String alias = "keystore-entry"; final Password password = new Password("d9D_u8LooYaXH4G48DtN#vw0"); final List certificateChain = List.of("certificate1", "certificate2"); - final PemToPKCS12Converter converter = new PemToPKCS12Converter(); + final PemConverter converter = new PemConverter(conversionTarget); privateKeyMockSetup(); // when then assertThatThrownBy(() -> converter.convertKeystore(certificateChain, password, alias, privateKey)) - .isInstanceOf(PemToPKCS12ConverterException.class).hasMessage(CERTIFICATES_ERROR_MSG); + .isInstanceOf(PemConversionException.class).hasMessage(CERTIFICATES_ERROR_MSG); } private void privateKeyMockSetup() { @@ -194,4 +202,4 @@ class PemToPKCS12ConverterTest { Path.of(CERT2_PATH), StandardCharsets.UTF_8) ); } -} \ No newline at end of file +}