diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7418aac --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +# Changelog for Common Encryption + +## [v2.0.0-SNAPSHOT] + +- removed old Providers diff --git a/changelog.xml b/changelog.xml deleted file mode 100644 index fc5b326..0000000 --- a/changelog.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Fixed distro files and pom according to new release procedure - - - Fixed pom according to new release procedure - - - SymmetricKey is now a public class - Fixed StringEncrypted decrypt/encrypt signatures. Deprecated olds ones - Added the facility to store a key in a file in KeySerialization class - SymmetricKey is now a public class - Made public the fuctions used to crreates keys in KeyFactory class - - - Compliancy with the new Maven-based release procedure - - - First Release - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 126b37c..2ac472f 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.gcube.core common-encryption - 1.2.1 + 2.0.0-SNAPSHOT Common Encryption Library Common Encryption Library is collection of encryption utilities @@ -29,7 +29,7 @@ org.gcube.distribution gcube-bom - 1.4.0 + 3.0.0-SNAPSHOT pom import @@ -37,6 +37,10 @@ + + org.gcube.common + common-security + org.gcube.core common-scope @@ -54,7 +58,7 @@ test - + diff --git a/src/main/java/org/gcube/common/encryption/SymmetricKey.java b/src/main/java/org/gcube/common/encryption/SymmetricKey.java index d7cde0d..bcc5395 100644 --- a/src/main/java/org/gcube/common/encryption/SymmetricKey.java +++ b/src/main/java/org/gcube/common/encryption/SymmetricKey.java @@ -13,9 +13,10 @@ import java.util.Map; import javax.crypto.spec.SecretKeySpec; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.common.scope.impl.ScopeBean; -import org.gcube.common.scope.impl.ScopeBean.Type; +import org.gcube.common.security.ContextBean; +import org.gcube.common.security.ContextBean.Type; +import org.gcube.common.security.providers.SecretManagerProvider; +import org.gcube.common.security.secrets.Secret; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,9 +43,11 @@ public final class SymmetricKey { * @throws InvalidKeyException if the key is not available or is invalid */ public synchronized static Key getKey() throws InvalidKeyException { - if(!keyContextMap.containsKey(ScopeProvider.instance.get())) - load(ScopeProvider.instance.get()); - return keyContextMap.get(ScopeProvider.instance.get()); + Secret secret = SecretManagerProvider.instance.get(); + String context = secret.getContext(); + if(!keyContextMap.containsKey(context)) + load(context); + return keyContextMap.get(context); } public static Key loadKeyFromFile(File keyFile, String keyAlgorithm) throws InvalidKeyException { @@ -97,7 +100,7 @@ public final class SymmetricKey { protected static String getKeyFileName(String context) throws InvalidKeyException { String keyFile = null; if(context != null) { - ScopeBean bean = new ScopeBean(context); + ContextBean bean = new ContextBean(context); if(bean.is(Type.VRE)) bean = bean.enclosingScope(); String name = bean.name(); diff --git a/src/test/java/org/gcube/common/encryption/LocalKeyTest.java b/src/test/java/org/gcube/common/encryption/LocalKeyTest.java index 2179c73..a87c929 100644 --- a/src/test/java/org/gcube/common/encryption/LocalKeyTest.java +++ b/src/test/java/org/gcube/common/encryption/LocalKeyTest.java @@ -2,7 +2,7 @@ package org.gcube.common.encryption; import java.security.InvalidKeyException; -import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.security.providers.SecretManagerProvider; import org.junit.BeforeClass; import org.junit.Test; @@ -10,12 +10,13 @@ public class LocalKeyTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - ScopeProvider.instance.set("/gcube/devsec"); + SecretManagerProvider.instance.set(new TestSecret("/gcube/devsec")); + } @Test public void test() throws InvalidKeyException { - String key=SymmetricKey.getKeyFileName(ScopeProvider.instance.get()); + String key=SymmetricKey.getKeyFileName(SecretManagerProvider.instance.get().getContext()); System.out.println("file key found: "+key); } diff --git a/src/test/java/org/gcube/common/encryption/StringEncrypterTest.java b/src/test/java/org/gcube/common/encryption/StringEncrypterTest.java index 9deb27b..98d8127 100644 --- a/src/test/java/org/gcube/common/encryption/StringEncrypterTest.java +++ b/src/test/java/org/gcube/common/encryption/StringEncrypterTest.java @@ -1,10 +1,8 @@ package org.gcube.common.encryption; -import static org.junit.Assert.*; +import static org.junit.Assert.fail; -import org.gcube.common.encryption.StringEncrypter; -import org.gcube.common.encryption.SymmetricKey; -import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.security.providers.SecretManagerProvider; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -20,7 +18,7 @@ public class StringEncrypterTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - ScopeProvider.instance.set("/gcube/devsec"); + SecretManagerProvider.instance.set(new TestSecret("/gcube/devsec")); key = SymmetricKey.getKey(); } diff --git a/src/test/java/org/gcube/common/encryption/SymmetricKeyTest.java b/src/test/java/org/gcube/common/encryption/SymmetricKeyTest.java index c5db7c0..3a9cace 100644 --- a/src/test/java/org/gcube/common/encryption/SymmetricKeyTest.java +++ b/src/test/java/org/gcube/common/encryption/SymmetricKeyTest.java @@ -5,7 +5,7 @@ import static org.junit.Assert.fail; import java.security.InvalidKeyException; import java.security.Key; -import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.security.providers.SecretManagerProvider; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -17,7 +17,7 @@ public class SymmetricKeyTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - ScopeProvider.instance.set("/gcube/devsec"); + SecretManagerProvider.instance.set(new TestSecret("/gcube/devsec")); } @AfterClass diff --git a/src/test/java/org/gcube/common/encryption/TestSecret.java b/src/test/java/org/gcube/common/encryption/TestSecret.java new file mode 100644 index 0000000..f4c092c --- /dev/null +++ b/src/test/java/org/gcube/common/encryption/TestSecret.java @@ -0,0 +1,46 @@ +package org.gcube.common.encryption; + +import java.util.Collections; +import java.util.Map; + +import org.gcube.common.security.Owner; +import org.gcube.common.security.secrets.Secret; + +public class TestSecret extends Secret { + + private String context; + + public TestSecret(String context){ + this.context = context; + } + + + + @Override + public Owner getOwner() { + return null; + } + + @Override + public String getContext() { + return this.context; + } + + @Override + public Map getHTTPAuthorizationHeaders() { + return Collections.emptyMap(); + } + + @Override + public boolean isExpired() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isRefreshable() { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/src/test/java/org/gcube/common/encryption/encrypter/StringEncrypterTest.java b/src/test/java/org/gcube/common/encryption/encrypter/StringEncrypterTest.java index ae96f04..91300e9 100644 --- a/src/test/java/org/gcube/common/encryption/encrypter/StringEncrypterTest.java +++ b/src/test/java/org/gcube/common/encryption/encrypter/StringEncrypterTest.java @@ -3,7 +3,8 @@ package org.gcube.common.encryption.encrypter; import static org.junit.Assert.fail; import org.gcube.common.encryption.SymmetricKey; -import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.encryption.TestSecret; +import org.gcube.common.security.providers.SecretManagerProvider; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; @@ -17,7 +18,7 @@ public class StringEncrypterTest { @BeforeClass public static void setUpBeforeClass() throws Exception { - ScopeProvider.instance.set("/gcube/devsec"); + SecretManagerProvider.instance.set(new TestSecret("/gcube/devsec")); key = SymmetricKey.getKey(); }