Add creation JKS artifact
[oom/platform/cert-service.git] / certServiceClient / src / main / java / org / onap / aaf / certservice / client / certification / conversion / ConvertedArtifactsCreator.java
@@ -22,57 +22,63 @@ package org.onap.aaf.certservice.client.certification.conversion;
 import java.security.PrivateKey;
 import java.util.List;
 import org.onap.aaf.certservice.client.certification.exception.CertFileWriterException;
-import org.onap.aaf.certservice.client.certification.exception.PemToPKCS12ConverterException;
+import org.onap.aaf.certservice.client.certification.exception.PemConversionException;
 import org.onap.aaf.certservice.client.certification.writer.CertFileWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class PKCS12ArtifactsCreator implements ArtifactsCreator {
+public class ConvertedArtifactsCreator implements ArtifactsCreator {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(PKCS12ArtifactsCreator.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(ConvertedArtifactsCreator.class);
     private static final String CERTIFICATE_ALIAS = "certificate";
     private static final String TRUSTED_CERTIFICATE_ALIAS = "trusted-certificate-";
     private static final int PASSWORD_LENGTH = 24;
-    private static final String KEYSTORE_P12 = "keystore.p12";
-    private static final String KEYSTORE_PASS = "keystore.pass";
-    private static final String TRUSTSTORE_P12 = "truststore.p12";
-    private static final String TRUSTSTORE_PASS = "truststore.pass";
-    private final RandomPasswordGenerator generator;
-    private final PemToPKCS12Converter converter;
-    private final CertFileWriter writer;
+    private static final String PASS_EXT = "pass";
+    private static final String KEYSTORE = "keystore";
+    private static final String TRUSTSTORE = "truststore";
 
-    public PKCS12ArtifactsCreator(CertFileWriter writer, RandomPasswordGenerator generator,
-                                  PemToPKCS12Converter converter) {
-        this.generator = generator;
+    private final String fileExtension;
+    private final RandomPasswordGenerator passwordGenerator;
+    private final PemConverter converter;
+    private final CertFileWriter fileWriter;
+
+    public ConvertedArtifactsCreator(CertFileWriter fileWriter, RandomPasswordGenerator passwordGenerator,
+                                     PemConverter converter, String fileExtension) {
+        this.passwordGenerator = passwordGenerator;
         this.converter = converter;
-        this.writer = writer;
+        this.fileWriter = fileWriter;
+        this.fileExtension = fileExtension;
     }
 
     @Override
     public void create(List<String> keystoreData, List<String> truststoreData, PrivateKey privateKey)
-        throws PemToPKCS12ConverterException, CertFileWriterException {
+        throws PemConversionException, CertFileWriterException {
         createKeystore(keystoreData,privateKey);
         createTruststore(truststoreData);
     }
 
     private void createKeystore(List<String> data, PrivateKey privateKey)
-        throws PemToPKCS12ConverterException, CertFileWriterException {
-        Password password = generator.generate(PASSWORD_LENGTH);
+        throws PemConversionException, CertFileWriterException {
+        Password password = passwordGenerator.generate(PASSWORD_LENGTH);
+        String keystoreArtifactName = String.format("%s.%s", KEYSTORE, fileExtension);
+        String keystorePass = String.format("%s.%s", KEYSTORE, PASS_EXT);
 
-        LOGGER.debug("Attempt to create PKCS12 keystore files and saving data. File names: {}, {}", KEYSTORE_P12, KEYSTORE_PASS);
+        LOGGER.debug("Attempt to create keystore files and saving data. File names: {}, {}", keystoreArtifactName, keystorePass);
 
-        writer.saveData(converter.convertKeystore(data, password, CERTIFICATE_ALIAS, privateKey), KEYSTORE_P12);
-        writer.saveData(getPasswordAsBytes(password), KEYSTORE_PASS);
+        fileWriter.saveData(converter.convertKeystore(data, password, CERTIFICATE_ALIAS, privateKey), keystoreArtifactName);
+        fileWriter.saveData(getPasswordAsBytes(password), keystorePass);
     }
 
     private void createTruststore(List<String> data)
-        throws PemToPKCS12ConverterException, CertFileWriterException {
-        Password password = generator.generate(PASSWORD_LENGTH);
+        throws PemConversionException, CertFileWriterException {
+        Password password = passwordGenerator.generate(PASSWORD_LENGTH);
+        String truststoreArtifactName = String.format("%s.%s", TRUSTSTORE, fileExtension);
+        String truststorePass = String.format("%s.%s", TRUSTSTORE, PASS_EXT);
 
-        LOGGER.debug("Attempt to create PKCS12 truststore files and saving data. File names: {}, {}", TRUSTSTORE_P12, TRUSTSTORE_PASS);
+        LOGGER.debug("Attempt to create truststore files and saving data. File names: {}, {}", truststoreArtifactName, truststorePass);
 
-        writer.saveData(converter.convertTruststore(data, password, TRUSTED_CERTIFICATE_ALIAS), TRUSTSTORE_P12);
-        writer.saveData(getPasswordAsBytes(password), TRUSTSTORE_PASS);
+        fileWriter.saveData(converter.convertTruststore(data, password, TRUSTED_CERTIFICATE_ALIAS), truststoreArtifactName);
+        fileWriter.saveData(getPasswordAsBytes(password), truststorePass);
     }
 
     private byte[] getPasswordAsBytes(Password password) {