aboutsummaryrefslogtreecommitdiff
path: root/java_src/src/test/java/com/google
diff options
context:
space:
mode:
authortholenst <tholenst@google.com>2023-07-11 02:41:48 -0700
committerCopybara-Service <copybara-worker@google.com>2023-07-11 02:42:55 -0700
commit2c21a67ee63ccd45728eadd10dfce04ce550e1fd (patch)
tree0cf5d35ece1e92b61068f562aef7bf330b165cc2 /java_src/src/test/java/com/google
parent89688db0f4f91c5cf33aa5aa841c2cd55d959c0a (diff)
downloadtink-2c21a67ee63ccd45728eadd10dfce04ce550e1fd.tar.gz
Signature: Replace the validation tests with tests checking if the key generation succeeds.
This is a bit more accurate, but has the disadvantage of being potentially slower. Anyhow, i want to change the template functions to not return these pairs (output_prefix, format) anymore, so we need to change this. PiperOrigin-RevId: 547128537
Diffstat (limited to 'java_src/src/test/java/com/google')
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/signature/BUILD.bazel6
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/signature/EcdsaSignKeyManagerTest.java41
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/signature/Ed25519PrivateKeyManagerTest.java26
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPkcs1SignKeyManagerTest.java39
-rw-r--r--java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPssSignKeyManagerTest.java40
5 files changed, 104 insertions, 48 deletions
diff --git a/java_src/src/test/java/com/google/crypto/tink/signature/BUILD.bazel b/java_src/src/test/java/com/google/crypto/tink/signature/BUILD.bazel
index 738e07a99..f1ae31541 100644
--- a/java_src/src/test/java/com/google/crypto/tink/signature/BUILD.bazel
+++ b/java_src/src/test/java/com/google/crypto/tink/signature/BUILD.bazel
@@ -10,6 +10,7 @@ java_test(
"//proto:tink_java_proto",
"//src/main/java/com/google/crypto/tink:key",
"//src/main/java/com/google/crypto/tink:key_template",
+ "//src/main/java/com/google/crypto/tink:key_templates",
"//src/main/java/com/google/crypto/tink:public_key_sign",
"//src/main/java/com/google/crypto/tink:public_key_verify",
"//src/main/java/com/google/crypto/tink:registry_cluster",
@@ -62,6 +63,7 @@ java_test(
"//proto:tink_java_proto",
"//src/main/java/com/google/crypto/tink:key",
"//src/main/java/com/google/crypto/tink:key_template",
+ "//src/main/java/com/google/crypto/tink:key_templates",
"//src/main/java/com/google/crypto/tink:public_key_sign",
"//src/main/java/com/google/crypto/tink:public_key_verify",
"//src/main/java/com/google/crypto/tink:registry_cluster",
@@ -117,7 +119,9 @@ java_test(
"//proto:ecdsa_java_proto",
"//proto:tink_java_proto",
"//src/main/java/com/google/crypto/tink:key_template",
+ "//src/main/java/com/google/crypto/tink:key_templates",
"//src/main/java/com/google/crypto/tink:public_key_sign",
+ "//src/main/java/com/google/crypto/tink:registry_cluster",
"//src/main/java/com/google/crypto/tink/internal:key_type_manager",
"//src/main/java/com/google/crypto/tink/signature:ecdsa_parameters",
"//src/main/java/com/google/crypto/tink/signature:ecdsa_sign_key_manager",
@@ -314,8 +318,10 @@ java_test(
"//proto:ed25519_java_proto",
"//proto:tink_java_proto",
"//src/main/java/com/google/crypto/tink:key_template",
+ "//src/main/java/com/google/crypto/tink:key_templates",
"//src/main/java/com/google/crypto/tink:public_key_sign",
"//src/main/java/com/google/crypto/tink:public_key_verify",
+ "//src/main/java/com/google/crypto/tink:registry_cluster",
"//src/main/java/com/google/crypto/tink/internal:key_type_manager",
"//src/main/java/com/google/crypto/tink/signature:ed25519_parameters",
"//src/main/java/com/google/crypto/tink/signature:ed25519_private_key_manager",
diff --git a/java_src/src/test/java/com/google/crypto/tink/signature/EcdsaSignKeyManagerTest.java b/java_src/src/test/java/com/google/crypto/tink/signature/EcdsaSignKeyManagerTest.java
index ab96ce7e8..db3582772 100644
--- a/java_src/src/test/java/com/google/crypto/tink/signature/EcdsaSignKeyManagerTest.java
+++ b/java_src/src/test/java/com/google/crypto/tink/signature/EcdsaSignKeyManagerTest.java
@@ -21,6 +21,8 @@ import static com.google.crypto.tink.testing.KeyTypeManagerTestUtil.testKeyTempl
import static org.junit.Assert.assertThrows;
import com.google.crypto.tink.KeyTemplate;
+import com.google.crypto.tink.KeyTemplates;
+import com.google.crypto.tink.KeysetHandle;
import com.google.crypto.tink.PublicKeySign;
import com.google.crypto.tink.internal.KeyTypeManager;
import com.google.crypto.tink.proto.EcdsaKeyFormat;
@@ -38,11 +40,14 @@ import java.util.Set;
import java.util.TreeSet;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.theories.DataPoints;
+import org.junit.experimental.theories.FromDataPoints;
+import org.junit.experimental.theories.Theories;
+import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
/** Unit tests for EcdsaSignKeyManager. */
-@RunWith(JUnit4.class)
+@RunWith(Theories.class)
public class EcdsaSignKeyManagerTest {
private final EcdsaSignKeyManager manager = new EcdsaSignKeyManager();
private final KeyTypeManager.KeyFactory<EcdsaKeyFormat, EcdsaPrivateKey> factory =
@@ -342,19 +347,25 @@ public class EcdsaSignKeyManagerTest {
testKeyTemplateCompatible(manager, EcdsaSignKeyManager.rawEcdsaP256Template());
}
- @Test
- public void testKeyFormats() throws Exception {
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P256").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P256_IEEE_P1363").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P256_RAW").keyFormat);
- factory.validateKeyFormat(
- factory.keyFormats().get("ECDSA_P256_IEEE_P1363_WITHOUT_PREFIX").keyFormat);
-
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P384_SHA384").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P384_SHA512").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P384_IEEE_P1363").keyFormat);
+ @DataPoints("templateNames")
+ public static final String[] KEY_TEMPLATES =
+ new String[] {
+ "ECDSA_P256",
+ "ECDSA_P256_IEEE_P1363",
+ "ECDSA_P256_RAW",
+ "ECDSA_P256_IEEE_P1363_WITHOUT_PREFIX",
+ "ECDSA_P384_SHA384",
+ "ECDSA_P384_SHA512",
+ "ECDSA_P384_IEEE_P1363",
+ "ECDSA_P521",
+ "ECDSA_P521_IEEE_P1363",
+ };
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P521").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ECDSA_P521_IEEE_P1363").keyFormat);
+ @Theory
+ public void testTemplates(@FromDataPoints("templateNames") String templateName) throws Exception {
+ KeysetHandle h = KeysetHandle.generateNew(KeyTemplates.get(templateName));
+ assertThat(h.size()).isEqualTo(1);
+ assertThat(h.getAt(0).getKey().getParameters())
+ .isEqualTo(KeyTemplates.get(templateName).toParameters());
}
}
diff --git a/java_src/src/test/java/com/google/crypto/tink/signature/Ed25519PrivateKeyManagerTest.java b/java_src/src/test/java/com/google/crypto/tink/signature/Ed25519PrivateKeyManagerTest.java
index 996aab8c2..95324fb9e 100644
--- a/java_src/src/test/java/com/google/crypto/tink/signature/Ed25519PrivateKeyManagerTest.java
+++ b/java_src/src/test/java/com/google/crypto/tink/signature/Ed25519PrivateKeyManagerTest.java
@@ -21,6 +21,8 @@ import static com.google.crypto.tink.testing.KeyTypeManagerTestUtil.testKeyTempl
import static org.junit.Assert.assertThrows;
import com.google.crypto.tink.KeyTemplate;
+import com.google.crypto.tink.KeyTemplates;
+import com.google.crypto.tink.KeysetHandle;
import com.google.crypto.tink.PublicKeySign;
import com.google.crypto.tink.PublicKeyVerify;
import com.google.crypto.tink.internal.KeyTypeManager;
@@ -39,11 +41,14 @@ import java.util.Set;
import java.util.TreeSet;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.theories.DataPoints;
+import org.junit.experimental.theories.FromDataPoints;
+import org.junit.experimental.theories.Theories;
+import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
/** Unit tests for Ed25519PrivateKeyManager. */
-@RunWith(JUnit4.class)
+@RunWith(Theories.class)
public class Ed25519PrivateKeyManagerTest {
private final Ed25519PrivateKeyManager manager = new Ed25519PrivateKeyManager();
private final KeyTypeManager.KeyFactory<Ed25519KeyFormat, Ed25519PrivateKey> factory =
@@ -243,10 +248,17 @@ public class Ed25519PrivateKeyManagerTest {
new ByteArrayInputStream(keyMaterial)));
}
- @Test
- public void testKeyFormats() throws Exception {
- factory.validateKeyFormat(factory.keyFormats().get("ED25519").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ED25519_RAW").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("ED25519WithRawOutput").keyFormat);
+ @DataPoints("templateNames")
+ public static final String[] KEY_TEMPLATES =
+ new String[] {
+ "ED25519", "ED25519_RAW", "ED25519WithRawOutput",
+ };
+
+ @Theory
+ public void testTemplates(@FromDataPoints("templateNames") String templateName) throws Exception {
+ KeysetHandle h = KeysetHandle.generateNew(KeyTemplates.get(templateName));
+ assertThat(h.size()).isEqualTo(1);
+ assertThat(h.getAt(0).getKey().getParameters())
+ .isEqualTo(KeyTemplates.get(templateName).toParameters());
}
}
diff --git a/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPkcs1SignKeyManagerTest.java b/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPkcs1SignKeyManagerTest.java
index 67b28e0be..3033ddf05 100644
--- a/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPkcs1SignKeyManagerTest.java
+++ b/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPkcs1SignKeyManagerTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import com.google.crypto.tink.KeyTemplate;
+import com.google.crypto.tink.KeyTemplates;
import com.google.crypto.tink.KeysetHandle;
import com.google.crypto.tink.PublicKeySign;
import com.google.crypto.tink.PublicKeyVerify;
@@ -49,11 +50,14 @@ import java.util.Set;
import java.util.TreeSet;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.experimental.theories.DataPoints;
+import org.junit.experimental.theories.FromDataPoints;
+import org.junit.experimental.theories.Theories;
+import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
/** Unit tests for RsaSsaPkcs1SignKeyManager. */
-@RunWith(JUnit4.class)
+@RunWith(Theories.class)
public class RsaSsaPkcs1SignKeyManagerTest {
@BeforeClass
@@ -356,16 +360,25 @@ public class RsaSsaPkcs1SignKeyManagerTest {
() -> manager.getPrimitive(corruptedKey, PublicKeySign.class));
}
- @Test
- public void testKeyFormats() throws Exception {
- factory.validateKeyFormat(factory.keyFormats().get("RSA_SSA_PKCS1_3072_SHA256_F4").keyFormat);
- factory.validateKeyFormat(
- factory.keyFormats().get("RSA_SSA_PKCS1_3072_SHA256_F4_RAW").keyFormat);
-
- factory.validateKeyFormat(factory.keyFormats().get("RSA_SSA_PKCS1_4096_SHA512_F4").keyFormat);
- factory.validateKeyFormat(
- factory.keyFormats().get("RSA_SSA_PKCS1_4096_SHA512_F4_RAW").keyFormat);
- factory.validateKeyFormat(
- factory.keyFormats().get("RSA_SSA_PKCS1_3072_SHA256_F4_WITHOUT_PREFIX").keyFormat);
+ @DataPoints("templateNames")
+ public static final String[] KEY_TEMPLATES =
+ new String[] {
+ "RSA_SSA_PKCS1_3072_SHA256_F4",
+ "RSA_SSA_PKCS1_3072_SHA256_F4_RAW",
+ "RSA_SSA_PKCS1_4096_SHA512_F4",
+ "RSA_SSA_PKCS1_4096_SHA512_F4_RAW",
+ "RSA_SSA_PKCS1_3072_SHA256_F4_WITHOUT_PREFIX"
+ };
+
+ @Theory
+ public void testTemplates(@FromDataPoints("templateNames") String templateName) throws Exception {
+ if (TestUtil.isTsan()) {
+ // factory.createKey is too slow in Tsan.
+ return;
+ }
+ KeysetHandle h = KeysetHandle.generateNew(KeyTemplates.get(templateName));
+ assertThat(h.size()).isEqualTo(1);
+ assertThat(h.getAt(0).getKey().getParameters())
+ .isEqualTo(KeyTemplates.get(templateName).toParameters());
}
}
diff --git a/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPssSignKeyManagerTest.java b/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPssSignKeyManagerTest.java
index 4bfc02988..10a7d2bab 100644
--- a/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPssSignKeyManagerTest.java
+++ b/java_src/src/test/java/com/google/crypto/tink/signature/RsaSsaPssSignKeyManagerTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import com.google.crypto.tink.KeyTemplate;
+import com.google.crypto.tink.KeyTemplates;
import com.google.crypto.tink.KeysetHandle;
import com.google.crypto.tink.PublicKeySign;
import com.google.crypto.tink.PublicKeyVerify;
@@ -49,11 +50,14 @@ import java.util.Set;
import java.util.TreeSet;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.experimental.theories.DataPoints;
+import org.junit.experimental.theories.FromDataPoints;
+import org.junit.experimental.theories.Theories;
+import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
/** Unit tests for RsaSsaPssSignKeyManager. */
-@RunWith(JUnit4.class)
+@RunWith(Theories.class)
public class RsaSsaPssSignKeyManagerTest {
private final RsaSsaPssSignKeyManager manager = new RsaSsaPssSignKeyManager();
private final KeyTypeManager.KeyFactory<RsaSsaPssKeyFormat, RsaSsaPssPrivateKey> factory =
@@ -410,16 +414,26 @@ public class RsaSsaPssSignKeyManagerTest {
testKeyTemplateCompatible(manager, RsaSsaPssSignKeyManager.rawRsa4096PssSha512F4Template());
}
- @Test
- public void testKeyFormats() throws Exception {
- factory.validateKeyFormat(factory.keyFormats().get("RSA_SSA_PSS_3072_SHA256_F4").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("RSA_SSA_PSS_3072_SHA256_F4_RAW").keyFormat);
- factory.validateKeyFormat(
- factory.keyFormats().get("RSA_SSA_PSS_3072_SHA256_SHA256_32_F4").keyFormat);
-
- factory.validateKeyFormat(factory.keyFormats().get("RSA_SSA_PSS_4096_SHA512_F4").keyFormat);
- factory.validateKeyFormat(factory.keyFormats().get("RSA_SSA_PSS_4096_SHA512_F4_RAW").keyFormat);
- factory.validateKeyFormat(
- factory.keyFormats().get("RSA_SSA_PSS_4096_SHA512_SHA512_64_F4").keyFormat);
+ @DataPoints("templateNames")
+ public static final String[] KEY_TEMPLATES =
+ new String[] {
+ "RSA_SSA_PSS_3072_SHA256_F4",
+ "RSA_SSA_PSS_3072_SHA256_F4_RAW",
+ "RSA_SSA_PSS_3072_SHA256_SHA256_32_F4",
+ "RSA_SSA_PSS_4096_SHA512_F4",
+ "RSA_SSA_PSS_4096_SHA512_F4_RAW",
+ "RSA_SSA_PSS_4096_SHA512_SHA512_64_F4",
+ };
+
+ @Theory
+ public void testTemplates(@FromDataPoints("templateNames") String templateName) throws Exception {
+ if (TestUtil.isTsan()) {
+ // factory.createKey is too slow in Tsan.
+ return;
+ }
+ KeysetHandle h = KeysetHandle.generateNew(KeyTemplates.get(templateName));
+ assertThat(h.size()).isEqualTo(1);
+ assertThat(h.getAt(0).getKey().getParameters())
+ .isEqualTo(KeyTemplates.get(templateName).toParameters());
}
}