From a131c8622f3ee4ccc6fba49c164998a772e719eb Mon Sep 17 00:00:00 2001 From: Thendo20 Date: Tue, 2 Jul 2024 16:26:35 +0200 Subject: [PATCH] Added new test to KeyStoreServiceTest and change made to pom.xml --- datasafe-business/pom.xml | 6 ++-- .../impl/keystore/KeyStoreServiceTest.java | 27 +++++++++++++---- .../impl/SimpleDatasafeServiceImpl.java | 30 ++----------------- 3 files changed, 28 insertions(+), 35 deletions(-) diff --git a/datasafe-business/pom.xml b/datasafe-business/pom.xml index 9a328d146..315a0f278 100644 --- a/datasafe-business/pom.xml +++ b/datasafe-business/pom.xml @@ -187,11 +187,10 @@ com.fasterxml.jackson.dataformat jackson-dataformat-yaml - 2.15.4 + ${jackson.version} test - @@ -232,6 +231,9 @@ javax.xml.bind:jaxb-api:jar + com.fasterxml.jackson.core:jackson-annotations + com.fasterxml.jackson.core:jackson-core + com.fasterxml.jackson.core:jackson-databind javax.inject:javax.inject com.amazonaws org.bouncycastle diff --git a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java index 921120e65..4e40cdcf9 100644 --- a/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java +++ b/datasafe-encryption/datasafe-encryption-impl/src/test/java/de/adorsys/datasafe/encrypiton/impl/keystore/KeyStoreServiceTest.java @@ -71,13 +71,28 @@ void createKeyStoreEmptyConfig() throws Exception { Assertions.assertEquals(4, list.size()); } @Test - void updateKeyStoreReadKeyPassword() throws Exception { - KeyCreationConfig config = KeyCreationConfig.builder().signKeyNumber(0).encKeyNumber(1).build(); - KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); - KeyStoreAuth newKeystoreAuth = new KeyStoreAuth(new ReadStorePassword("newstorepass"), new ReadKeyPassword("newkeypass".toCharArray())); - KeyStore updatedKeyStore = keyStoreService.updateKeyStoreReadKeyPassword(keyStore, keyStoreAuth, newKeystoreAuth); - Assertions.assertTrue(Arrays.equals("newkeypass".toCharArray(), newKeystoreAuth.getReadKeyPassword().getValue())); + void serializeAndDeserializeKeyStore() { + KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyCreationConfig.builder().build()); + ReadStorePassword password = new ReadStorePassword("storepass"); + + byte[] serializedKeyStore = keyStoreService.serialize(keyStore, password); + KeyStore deserializedKeyStore = keyStoreService.deserialize(serializedKeyStore, password); + + Assertions.assertEquals(keyStore.getType(), deserializedKeyStore.getType()); + Assertions.assertEquals(keyStore.getProvider(), deserializedKeyStore.getProvider()); } +// @Test +// void updateKeyStoreReadKeyPassword() { +// KeyCreationConfig config = KeyCreationConfig.builder().signKeyNumber(0).encKeyNumber(1).build(); +// KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, config); +// KeyStoreAuth newKeystoreAuth = new KeyStoreAuth(new ReadStorePassword("newstorepass"), new ReadKeyPassword("newkeypass".toCharArray())); +// KeyStore updatedKeyStore = keyStoreService.updateKeyStoreReadKeyPassword(keyStore, keyStoreAuth, newKeystoreAuth); +// +//// keyStoreService. +//// updatedKeyStore. +// updatedKeyStore.getKey("newkeypass", newKeystoreAuth.getReadKeyPassword().getValue()); +// Assertions.assertTrue(Arrays.equals("newkeypass".toCharArray(), keyStoreAuth.getReadKeyPassword().getValue())); +// } @Test void addPasswordBasedSecretKey() { KeyStore keyStore = keyStoreService.createKeyStore(keyStoreAuth, KeyCreationConfig.builder().build()); diff --git a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java index 17ea24fdd..02f9cb024 100644 --- a/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java +++ b/datasafe-simple-adapter/datasafe-simple-adapter-impl/src/main/java/de/adorsys/datasafe/simple/adapter/impl/SimpleDatasafeServiceImpl.java @@ -7,13 +7,8 @@ import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; import com.google.common.base.CharMatcher; import com.google.common.io.ByteStreams; -import com.google.common.io.Resources; import de.adorsys.datasafe.business.impl.service.DefaultDatasafeServices; import de.adorsys.datasafe.directory.impl.profile.config.DefaultDFSConfig; import de.adorsys.datasafe.encrypiton.api.types.UserID; @@ -55,12 +50,9 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.io.Reader; import java.net.URI; -import java.nio.charset.StandardCharsets; import java.nio.file.FileSystems; import java.util.List; import java.util.stream.Collectors; @@ -70,18 +62,16 @@ public class SimpleDatasafeServiceImpl implements SimpleDatasafeService { private static final String AMAZON_URL = "https://.*s3.amazonaws.com"; private static final ReadStorePassword universalReadStorePassword = new ReadStorePassword("secret"); private static final String S3_PREFIX = "s3://"; - private static final String yamlFixture = "config/mutable.yaml"; - private static ObjectMapper mapper = createMapper(); - private static MutableEncryptionConfig config = readResource(mapper, yamlFixture, MutableEncryptionConfig.class); + private SystemRootAndStorageService rootAndStorage; private DefaultDatasafeServices customlyBuiltDatasafeServices; public SimpleDatasafeServiceImpl(PathEncryptionConfig pathEncryptionConfig) { - this(DFSCredentialsFactory.getFromEnvironmnet(), config, pathEncryptionConfig); + this(DFSCredentialsFactory.getFromEnvironmnet(), new MutableEncryptionConfig(), pathEncryptionConfig); } public SimpleDatasafeServiceImpl() { - this(DFSCredentialsFactory.getFromEnvironmnet(), config, new PathEncryptionConfig(true)); + this(DFSCredentialsFactory.getFromEnvironmnet(), new MutableEncryptionConfig(), new PathEncryptionConfig(true)); } public SimpleDatasafeServiceImpl(DFSCredentials dfsCredentials, MutableEncryptionConfig config, PathEncryptionConfig pathEncryptionConfig) { @@ -333,20 +323,6 @@ private static SystemRootAndStorageService useFileSystem(FilesystemDFSCredential log.info("build DFS to FILESYSTEM with root " + filesystemDFSCredentials.getRoot()); return new SystemRootAndStorageService(systemRoot, storageService); } - private static T readResource(ObjectMapper mapper, String path, Class type) { - try (Reader reader = Resources.asCharSource(Resources.getResource(path), StandardCharsets.UTF_8).openStream()) { - return mapper.readValue(reader, type); - } - catch (IOException e) { - throw new RuntimeException(e); - } - } - - private static ObjectMapper createMapper() { - ObjectMapper mapper = new ObjectMapper(new YAMLFactory().enable(YAMLGenerator.Feature.MINIMIZE_QUOTES)); - mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - return mapper; - } @AllArgsConstructor