Skip to content

Commit

Permalink
extracted cryptvault to a separate library. removed travis.
Browse files Browse the repository at this point in the history
  • Loading branch information
agoston committed May 31, 2021
1 parent 82e0820 commit 82bc599
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 301 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
[![Maven Central](https://img.shields.io/maven-central/v/com.bol/spring-data-mongodb-encrypt.svg)](http://search.maven.org/#search%7Cga%7C1%7Ccom.bol)
[![Build Status](https://secure.travis-ci.org/bolcom/spring-data-mongodb-encrypt.svg)](http://travis-ci.org/bolcom/spring-data-mongodb-encrypt)


# spring-data-mongodb-encrypt
Expand Down
7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<artifactId>spring-data-mongodb-encrypt</artifactId>
<packaging>jar</packaging>
<name>spring-data-mongodb-encrypt</name>
<version>2.6.2</version>
<version>2.7.0-SNAPSHOT</version>
<description>High performance, per-field encryption for spring-data-mongodb</description>
<url>https://github.com/agoston/spring-data-mongodb-encrypt</url>

Expand Down Expand Up @@ -40,6 +40,11 @@
</properties>

<dependencies>
<dependency>
<groupId>com.bol</groupId>
<artifactId>cryptvault</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
Expand Down
52 changes: 11 additions & 41 deletions src/main/java/com/bol/config/EncryptAutoConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,40 +1,33 @@
package com.bol.config;

import com.bol.config.CryptVaultAutoConfiguration.CryptVaultConfigurationProperties;
import com.bol.crypt.CryptVault;
import com.bol.secure.AbstractEncryptionEventListener;
import com.bol.secure.CachedEncryptionEventListener;
import com.bol.secure.ReflectionEncryptionEventListener;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import java.util.Base64;
import java.util.List;

@Configuration
@ConditionalOnProperty("mongodb.encrypt.keys[0].key")
public class EncryptAutoConfiguration {

@Bean
/** This allows user to create and configure their own CryptVault, or rely on a global CryptVault from the standalone `cryptvault` library;
* This CryptVault config is merely a convenience fallback, and also offers backwards compatibility with version 2.6.2 and below */
@ConditionalOnMissingBean(CryptVault.class)
@ConditionalOnProperty(prefix = "mongodb.encrypt", name = "keys[0].key")
CryptVault cryptVault(EncryptConfigurationProperties properties) {
CryptVault cryptVault = new CryptVault();
if (properties.keys == null || properties.keys.isEmpty()) throw new IllegalArgumentException("mongodb.encrypt.keys is empty");

for (Key key : properties.keys) {
byte[] secretKeyBytes = Base64.getDecoder().decode(key.key);
cryptVault.with256BitAesCbcPkcs5PaddingAnd128BitSaltKey(key.version, secretKeyBytes);
}

if (properties.defaultKey != null) {
cryptVault.withDefaultKeyVersion(properties.defaultKey);
}

return cryptVault;
return new CryptVaultAutoConfiguration().cryptVault(properties);
}

@Bean
@ConditionalOnMissingBean({ReflectionEncryptionEventListener.class, CachedEncryptionEventListener.class})
@ConditionalOnProperty(prefix = "mongodb.encrypt", name = {"type", "silent-decryption-failures"})
AbstractEncryptionEventListener encryptionEventListener(CryptVault cryptVault, EncryptConfigurationProperties properties) {
AbstractEncryptionEventListener eventListener;
if ("reflection".equalsIgnoreCase(properties.type)) {
Expand All @@ -50,20 +43,10 @@ AbstractEncryptionEventListener encryptionEventListener(CryptVault cryptVault, E

@Component
@ConfigurationProperties("mongodb.encrypt")
public static class EncryptConfigurationProperties {
List<Key> keys;
Integer defaultKey;
public static class EncryptConfigurationProperties extends CryptVaultConfigurationProperties {
String type;
Boolean silentDecryptionFailures;

public void setKeys(List<Key> keys) {
this.keys = keys;
}

public void setDefaultKey(Integer defaultKey) {
this.defaultKey = defaultKey;
}

public void setType(String type) {
this.type = type;
}
Expand All @@ -72,17 +55,4 @@ public void setSilentDecryptionFailures(Boolean silentDecryptionFailures) {
this.silentDecryptionFailures = silentDecryptionFailures;
}
}

public static class Key {
int version;
String key;

public void setVersion(int version) {
this.version = version;
}

public void setKey(String key) {
this.key = key;
}
}
}
7 changes: 0 additions & 7 deletions src/main/java/com/bol/crypt/CryptOperationException.java

This file was deleted.

174 changes: 0 additions & 174 deletions src/main/java/com/bol/crypt/CryptVault.java

This file was deleted.

19 changes: 0 additions & 19 deletions src/main/java/com/bol/crypt/CryptVersion.java

This file was deleted.

58 changes: 0 additions & 58 deletions src/main/java/com/bol/util/JCEPolicy.java

This file was deleted.

0 comments on commit 82bc599

Please sign in to comment.