Skip to content

Commit

Permalink
Injecting CryptorProvider into UpgradeStrategies
Browse files Browse the repository at this point in the history
  • Loading branch information
overheadhunter committed Sep 12, 2016
1 parent 824bd9e commit 091e620
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 13 deletions.
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@


import org.cryptomator.common.CommonsModule; import org.cryptomator.common.CommonsModule;
import org.cryptomator.crypto.engine.impl.CryptoEngineModule; import org.cryptomator.crypto.engine.impl.CryptoEngineModule;
import org.cryptomator.cryptolib.CryptoLibModule;
import org.cryptomator.frontend.FrontendFactory; import org.cryptomator.frontend.FrontendFactory;
import org.cryptomator.frontend.FrontendId; import org.cryptomator.frontend.FrontendId;
import org.cryptomator.frontend.webdav.WebDavModule; import org.cryptomator.frontend.webdav.WebDavModule;
Expand All @@ -41,7 +42,7 @@
import javafx.beans.Observable; import javafx.beans.Observable;
import javafx.stage.Stage; import javafx.stage.Stage;


@Module(includes = {CryptoEngineModule.class, CommonsModule.class, WebDavModule.class, KeychainModule.class, JniModule.class}) @Module(includes = {CryptoEngineModule.class, CommonsModule.class, WebDavModule.class, KeychainModule.class, JniModule.class, CryptoLibModule.class})
class CryptomatorModule { class CryptomatorModule {


private static final Logger LOG = LoggerFactory.getLogger(CryptomatorModule.class); private static final Logger LOG = LoggerFactory.getLogger(CryptomatorModule.class);
Expand Down
13 changes: 12 additions & 1 deletion main/ui/src/main/java/org/cryptomator/ui/MainApplication.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@
import java.nio.file.FileSystems; import java.nio.file.FileSystems;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;


import org.apache.commons.lang3.SystemUtils; import org.apache.commons.lang3.SystemUtils;
import org.cryptomator.cryptolib.common.SecureRandomModule;
import org.cryptomator.ui.controllers.MainController; import org.cryptomator.ui.controllers.MainController;
import org.cryptomator.ui.util.ActiveWindowStyleSupport; import org.cryptomator.ui.util.ActiveWindowStyleSupport;
import org.cryptomator.ui.util.DeferredCloser; import org.cryptomator.ui.util.DeferredCloser;
Expand All @@ -40,7 +43,15 @@ public class MainApplication extends Application {
@Override @Override
public void start(Stage primaryStage) throws IOException { public void start(Stage primaryStage) throws IOException {
LOG.info("JavaFX application started"); LOG.info("JavaFX application started");
final CryptomatorComponent comp = DaggerCryptomatorComponent.builder().cryptomatorModule(new CryptomatorModule(this, primaryStage)).build(); final CryptomatorComponent comp;
try {
comp = DaggerCryptomatorComponent.builder() //
.cryptomatorModule(new CryptomatorModule(this, primaryStage)) //
.secureRandomModule(new SecureRandomModule(SecureRandom.getInstanceStrong())) //
.build();
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("Every implementation of the Java platform is required to support at least one strong SecureRandom implementation.", e);
}
final MainController mainCtrl = comp.mainController(); final MainController mainCtrl = comp.mainController();
closer = comp.deferredCloser(); closer = comp.deferredCloser();


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.security.SecureRandom;


import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;


import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.cryptomator.cryptolib.Cryptors; import org.cryptomator.cryptolib.api.CryptoLibVersion;
import org.cryptomator.cryptolib.api.CryptoLibVersion.Version;
import org.cryptomator.cryptolib.api.Cryptor; import org.cryptomator.cryptolib.api.Cryptor;
import org.cryptomator.cryptolib.api.CryptorProvider;
import org.cryptomator.ui.settings.Localization; import org.cryptomator.ui.settings.Localization;
import org.cryptomator.ui.settings.Settings; import org.cryptomator.ui.settings.Settings;
import org.slf4j.Logger; import org.slf4j.Logger;
Expand All @@ -25,8 +26,8 @@ class UpgradeVersion3DropBundleExtension extends UpgradeStrategy {
private final Settings settings; private final Settings settings;


@Inject @Inject
public UpgradeVersion3DropBundleExtension(SecureRandom secureRandom, Localization localization, Settings settings) { public UpgradeVersion3DropBundleExtension(@CryptoLibVersion(Version.ONE) CryptorProvider version1CryptorProvider, Localization localization, Settings settings) {
super(Cryptors.version1(secureRandom), localization, 3, 3); super(version1CryptorProvider, localization, 3, 3);
this.settings = settings; this.settings = settings;
} }


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.SecureRandom;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;


Expand All @@ -19,8 +18,10 @@
import org.apache.commons.codec.binary.Base32; import org.apache.commons.codec.binary.Base32;
import org.apache.commons.codec.binary.BaseNCodec; import org.apache.commons.codec.binary.BaseNCodec;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.cryptomator.cryptolib.Cryptors; import org.cryptomator.cryptolib.api.CryptoLibVersion;
import org.cryptomator.cryptolib.api.CryptoLibVersion.Version;
import org.cryptomator.cryptolib.api.Cryptor; import org.cryptomator.cryptolib.api.Cryptor;
import org.cryptomator.cryptolib.api.CryptorProvider;
import org.cryptomator.cryptolib.common.MessageDigestSupplier; import org.cryptomator.cryptolib.common.MessageDigestSupplier;
import org.cryptomator.ui.settings.Localization; import org.cryptomator.ui.settings.Localization;
import org.slf4j.Logger; import org.slf4j.Logger;
Expand All @@ -44,8 +45,8 @@ class UpgradeVersion3to4 extends UpgradeStrategy {
private final BaseNCodec base32 = new Base32(); private final BaseNCodec base32 = new Base32();


@Inject @Inject
public UpgradeVersion3to4(SecureRandom secureRandom, Localization localization) { public UpgradeVersion3to4(@CryptoLibVersion(Version.ONE) CryptorProvider version1CryptorProvider, Localization localization) {
super(Cryptors.version1(secureRandom), localization, 3, 4); super(version1CryptorProvider, localization, 3, 4);
} }


@Override @Override
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@
import java.nio.file.SimpleFileVisitor; import java.nio.file.SimpleFileVisitor;
import java.nio.file.StandardOpenOption; import java.nio.file.StandardOpenOption;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.security.SecureRandom;
import java.util.regex.Pattern; import java.util.regex.Pattern;


import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;


import org.cryptomator.cryptolib.Cryptors; import org.cryptomator.cryptolib.Cryptors;
import org.cryptomator.cryptolib.api.CryptoLibVersion;
import org.cryptomator.cryptolib.api.CryptoLibVersion.Version;
import org.cryptomator.cryptolib.api.Cryptor; import org.cryptomator.cryptolib.api.Cryptor;
import org.cryptomator.cryptolib.api.CryptorProvider;
import org.cryptomator.cryptolib.api.FileHeader; import org.cryptomator.cryptolib.api.FileHeader;
import org.cryptomator.ui.settings.Localization; import org.cryptomator.ui.settings.Localization;
import org.slf4j.Logger; import org.slf4j.Logger;
Expand All @@ -33,8 +35,8 @@ class UpgradeVersion4to5 extends UpgradeStrategy {
private static final Pattern BASE32_PATTERN = Pattern.compile("^([A-Z2-7]{8})*[A-Z2-7=]{8}"); private static final Pattern BASE32_PATTERN = Pattern.compile("^([A-Z2-7]{8})*[A-Z2-7=]{8}");


@Inject @Inject
public UpgradeVersion4to5(SecureRandom secureRandom, Localization localization) { public UpgradeVersion4to5(@CryptoLibVersion(Version.ONE) CryptorProvider version1CryptorProvider, Localization localization) {
super(Cryptors.version1(secureRandom), localization, 4, 5); super(version1CryptorProvider, localization, 4, 5);
} }


@Override @Override
Expand Down

0 comments on commit 091e620

Please sign in to comment.