Prepare primitive wrappers to the switch in the Registry where MutablePrimitiveRegistry will be used under the hood for wrapper registration, and this does not tolerate when a different wrapper object is attempted to be registered for a primitive class for which a wrapper object is already registered.
PiperOrigin-RevId: 495833830
Change-Id: Ieced9abe4c04977e909a3c7462d2d09478ac4e69
diff --git a/src/main/java/com/google/crypto/tink/aead/AeadWrapper.java b/src/main/java/com/google/crypto/tink/aead/AeadWrapper.java
index c81ee40..50b7a92 100644
--- a/src/main/java/com/google/crypto/tink/aead/AeadWrapper.java
+++ b/src/main/java/com/google/crypto/tink/aead/AeadWrapper.java
@@ -42,6 +42,8 @@
public class AeadWrapper implements PrimitiveWrapper<Aead, Aead> {
private static final Logger logger = Logger.getLogger(AeadWrapper.class.getName());
+ private static final AeadWrapper WRAPPER = new AeadWrapper();
+
private static class WrappedAead implements Aead {
private final PrimitiveSet<Aead> pSet;
private final MonitoringClient.Logger encLogger;
@@ -131,6 +133,6 @@
}
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new AeadWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/daead/DeterministicAeadWrapper.java b/src/main/java/com/google/crypto/tink/daead/DeterministicAeadWrapper.java
index 473b4a1..ae2d908 100644
--- a/src/main/java/com/google/crypto/tink/daead/DeterministicAeadWrapper.java
+++ b/src/main/java/com/google/crypto/tink/daead/DeterministicAeadWrapper.java
@@ -42,7 +42,9 @@
*/
public class DeterministicAeadWrapper
implements PrimitiveWrapper<DeterministicAead, DeterministicAead> {
+
private static final Logger logger = Logger.getLogger(DeterministicAeadWrapper.class.getName());
+ private static final DeterministicAeadWrapper WRAPPER = new DeterministicAeadWrapper();
private static class WrappedDeterministicAead implements DeterministicAead {
private final PrimitiveSet<DeterministicAead> primitives;
@@ -138,6 +140,6 @@
}
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new DeterministicAeadWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/hybrid/HybridDecryptWrapper.java b/src/main/java/com/google/crypto/tink/hybrid/HybridDecryptWrapper.java
index 267bc82..28507f4 100644
--- a/src/main/java/com/google/crypto/tink/hybrid/HybridDecryptWrapper.java
+++ b/src/main/java/com/google/crypto/tink/hybrid/HybridDecryptWrapper.java
@@ -38,7 +38,9 @@
* com.google.crypto.tink.proto.OutputPrefixType#RAW}.
*/
public class HybridDecryptWrapper implements PrimitiveWrapper<HybridDecrypt, HybridDecrypt> {
+
private static final Logger logger = Logger.getLogger(HybridDecryptWrapper.class.getName());
+ private static final HybridDecryptWrapper WRAPPER = new HybridDecryptWrapper();
private static class WrappedHybridDecrypt implements HybridDecrypt {
private final PrimitiveSet<HybridDecrypt> primitives;
@@ -116,6 +118,6 @@
* argument.
*/
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new HybridDecryptWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/hybrid/HybridEncryptWrapper.java b/src/main/java/com/google/crypto/tink/hybrid/HybridEncryptWrapper.java
index 605b6e5..8cf86cd 100644
--- a/src/main/java/com/google/crypto/tink/hybrid/HybridEncryptWrapper.java
+++ b/src/main/java/com/google/crypto/tink/hybrid/HybridEncryptWrapper.java
@@ -34,6 +34,9 @@
* with the primary key.
*/
public class HybridEncryptWrapper implements PrimitiveWrapper<HybridEncrypt, HybridEncrypt> {
+
+ private static final HybridEncryptWrapper WRAPPER = new HybridEncryptWrapper();
+
private static class WrappedHybridEncrypt implements HybridEncrypt {
final PrimitiveSet<HybridEncrypt> primitives;
@@ -95,6 +98,6 @@
* argument.
*/
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new HybridEncryptWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/jwt/JwtMacWrapper.java b/src/main/java/com/google/crypto/tink/jwt/JwtMacWrapper.java
index 973915c..e66c170 100644
--- a/src/main/java/com/google/crypto/tink/jwt/JwtMacWrapper.java
+++ b/src/main/java/com/google/crypto/tink/jwt/JwtMacWrapper.java
@@ -29,6 +29,9 @@
* JwtMacWrapper is the implementation of {@link PrimitiveWrapper} for the {@link JwtMac} primitive.
*/
class JwtMacWrapper implements PrimitiveWrapper<JwtMacInternal, JwtMac> {
+
+ private static final JwtMacWrapper WRAPPER = new JwtMacWrapper();
+
private static void validate(PrimitiveSet<JwtMacInternal> primitiveSet)
throws GeneralSecurityException {
if (primitiveSet.getPrimary() == null) {
@@ -105,6 +108,6 @@
}
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new JwtMacWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeySignWrapper.java b/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeySignWrapper.java
index 02e13af..241d7b4 100644
--- a/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeySignWrapper.java
+++ b/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeySignWrapper.java
@@ -35,6 +35,8 @@
class JwtPublicKeySignWrapper
implements PrimitiveWrapper<JwtPublicKeySignInternal, JwtPublicKeySign> {
+ private static final JwtPublicKeySignWrapper WRAPPER = new JwtPublicKeySignWrapper();
+
private static void validate(PrimitiveSet<JwtPublicKeySignInternal> primitiveSet)
throws GeneralSecurityException {
if (primitiveSet.getPrimary() == null) {
@@ -94,6 +96,6 @@
* argument.
*/
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new JwtPublicKeySignWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeyVerifyWrapper.java b/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeyVerifyWrapper.java
index 92b1a48..47c696a 100644
--- a/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeyVerifyWrapper.java
+++ b/src/main/java/com/google/crypto/tink/jwt/JwtPublicKeyVerifyWrapper.java
@@ -29,6 +29,8 @@
class JwtPublicKeyVerifyWrapper
implements PrimitiveWrapper<JwtPublicKeyVerifyInternal, JwtPublicKeyVerify> {
+ private static final JwtPublicKeyVerifyWrapper WRAPPER = new JwtPublicKeyVerifyWrapper();
+
private static void validate(PrimitiveSet<JwtPublicKeyVerifyInternal> primitiveSet)
throws GeneralSecurityException {
for (List<PrimitiveSet.Entry<JwtPublicKeyVerifyInternal>> entries : primitiveSet.getAll()) {
@@ -100,6 +102,6 @@
* argument.
*/
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new JwtPublicKeyVerifyWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/mac/MacWrapper.java b/src/main/java/com/google/crypto/tink/mac/MacWrapper.java
index 62718cc..f0ab5bb 100644
--- a/src/main/java/com/google/crypto/tink/mac/MacWrapper.java
+++ b/src/main/java/com/google/crypto/tink/mac/MacWrapper.java
@@ -45,6 +45,7 @@
private static final Logger logger = Logger.getLogger(MacWrapper.class.getName());
private static final byte[] FORMAT_VERSION = new byte[] {0};
+ private static final MacWrapper WRAPPER = new MacWrapper();
private static class WrappedMac implements Mac {
private final PrimitiveSet<Mac> primitives;
@@ -169,6 +170,6 @@
}
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new MacWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/prf/PrfSetWrapper.java b/src/main/java/com/google/crypto/tink/prf/PrfSetWrapper.java
index 1417f4e..3108300 100644
--- a/src/main/java/com/google/crypto/tink/prf/PrfSetWrapper.java
+++ b/src/main/java/com/google/crypto/tink/prf/PrfSetWrapper.java
@@ -38,6 +38,9 @@
*/
@Immutable
public class PrfSetWrapper implements PrimitiveWrapper<Prf, PrfSet> {
+
+ private static final PrfSetWrapper WRAPPER = new PrfSetWrapper();
+
private static class WrappedPrfSet extends PrfSet {
// This map is constructed using Collections.unmodifiableMap
@SuppressWarnings("Immutable")
@@ -131,6 +134,6 @@
}
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new PrfSetWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/signature/PublicKeySignWrapper.java b/src/main/java/com/google/crypto/tink/signature/PublicKeySignWrapper.java
index 5898f21..b1db7f6 100644
--- a/src/main/java/com/google/crypto/tink/signature/PublicKeySignWrapper.java
+++ b/src/main/java/com/google/crypto/tink/signature/PublicKeySignWrapper.java
@@ -38,6 +38,7 @@
public class PublicKeySignWrapper implements PrimitiveWrapper<PublicKeySign, PublicKeySign> {
private static final byte[] FORMAT_VERSION = new byte[] {0};
+ private static final PublicKeySignWrapper WRAPPER = new PublicKeySignWrapper();
private static class WrappedPublicKeySign implements PublicKeySign {
private final PrimitiveSet<PublicKeySign> primitives;
@@ -99,6 +100,6 @@
* argument.
*/
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new PublicKeySignWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapper.java b/src/main/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapper.java
index e3a3bd1..520f2cd 100644
--- a/src/main/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapper.java
+++ b/src/main/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapper.java
@@ -43,9 +43,11 @@
* @since 1.0.0
*/
class PublicKeyVerifyWrapper implements PrimitiveWrapper<PublicKeyVerify, PublicKeyVerify> {
+
private static final Logger logger = Logger.getLogger(PublicKeyVerifyWrapper.class.getName());
private static final byte[] FORMAT_VERSION = new byte[] {0};
+ private static final PublicKeyVerifyWrapper WRAPPER = new PublicKeyVerifyWrapper();
private static class WrappedPublicKeyVerify implements PublicKeyVerify {
private final PrimitiveSet<PublicKeyVerify> primitives;
@@ -131,6 +133,6 @@
* argument.
*/
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new PublicKeyVerifyWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}
diff --git a/src/main/java/com/google/crypto/tink/streamingaead/StreamingAeadWrapper.java b/src/main/java/com/google/crypto/tink/streamingaead/StreamingAeadWrapper.java
index ef5961c..76711e7 100644
--- a/src/main/java/com/google/crypto/tink/streamingaead/StreamingAeadWrapper.java
+++ b/src/main/java/com/google/crypto/tink/streamingaead/StreamingAeadWrapper.java
@@ -31,6 +31,9 @@
* {@link com.google.crypto.tink.proto.OutputPrefixType#RAW}.
*/
public class StreamingAeadWrapper implements PrimitiveWrapper<StreamingAead, StreamingAead> {
+
+ private static final StreamingAeadWrapper WRAPPER = new StreamingAeadWrapper();
+
StreamingAeadWrapper() {}
/**
@@ -54,6 +57,6 @@
}
public static void register() throws GeneralSecurityException {
- Registry.registerPrimitiveWrapper(new StreamingAeadWrapper());
+ Registry.registerPrimitiveWrapper(WRAPPER);
}
}