diff --git a/pom.xml b/pom.xml index 3807a06..c269d05 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.cryptomator siv-mode - 1.4.2 + 1.4.3 SIV Mode RFC 5297 SIV mode: deterministic authenticated encryption @@ -37,12 +37,12 @@ UTF-8 - 1.68 + 1.69 - 5.7.1 - 3.10.0 - 1.31 + 5.7.2 + 3.11.2 + 1.32 2.2 30.1.1-jre @@ -174,7 +174,7 @@ maven-javadoc-plugin - 3.2.0 + 3.3.0 attach-javadocs @@ -235,7 +235,7 @@ org.owasp dependency-check-maven - 6.1.0 + 6.2.2 24 0 @@ -259,7 +259,7 @@ org.jacoco jacoco-maven-plugin - 0.8.6 + 0.8.7 prepare-agent @@ -268,6 +268,12 @@ + + + + META-INF/** + + @@ -279,7 +285,7 @@ maven-gpg-plugin - 1.6 + 3.0.1 sign-artifacts diff --git a/src/main/java/org/cryptomator/siv/SivMode.java b/src/main/java/org/cryptomator/siv/SivMode.java index fc1a6d2..3f8e635 100644 --- a/src/main/java/org/cryptomator/siv/SivMode.java +++ b/src/main/java/org/cryptomator/siv/SivMode.java @@ -51,7 +51,7 @@ public SivMode() { * @see #SivMode(BlockCipherFactory) */ public SivMode(final Provider jceSecurityProvider) { - this(ThreadLocal.withInitial(() -> new JceAesBlockCipher(jceSecurityProvider)), new JceAesCtrComputer(jceSecurityProvider)); + this(ThreadLocals.withInitial(() -> new JceAesBlockCipher(jceSecurityProvider)), new JceAesCtrComputer(jceSecurityProvider)); } /** @@ -60,7 +60,7 @@ public SivMode(final Provider jceSecurityProvider) { * @param cipherFactory A factory method creating a Blockcipher.get(). Must use a block size of 128 bits (16 bytes). */ public SivMode(final BlockCipherFactory cipherFactory) { - this(ThreadLocal.withInitial(() -> cipherFactory.create())); + this(ThreadLocals.withInitial(() -> cipherFactory.create())); } private SivMode(final ThreadLocal threadLocalCipher) { diff --git a/src/main/java/org/cryptomator/siv/ThreadLocals.java b/src/main/java/org/cryptomator/siv/ThreadLocals.java new file mode 100644 index 0000000..287c23d --- /dev/null +++ b/src/main/java/org/cryptomator/siv/ThreadLocals.java @@ -0,0 +1,17 @@ +package org.cryptomator.siv; + +import java.util.function.Supplier; + +class ThreadLocals { + + static ThreadLocal withInitial(Supplier supplier) { + // ThreadLocal.withInitial is unavailable on Android 7.x + return new ThreadLocal() { + @Override + protected S initialValue() { + return supplier.get(); + } + }; + } + +} diff --git a/src/main/java9/org.cryptomator.siv/ThreadLocals.java b/src/main/java9/org.cryptomator.siv/ThreadLocals.java new file mode 100644 index 0000000..fc5fe82 --- /dev/null +++ b/src/main/java9/org.cryptomator.siv/ThreadLocals.java @@ -0,0 +1,11 @@ +package org.cryptomator.siv; + +import java.util.function.Supplier; + +class ThreadLocals { + + static ThreadLocal withInitial(Supplier supplier) { + return ThreadLocal.withInitial(supplier); + } + +}