Add test case with primitive set without primary primitive.
PiperOrigin-RevId: 460382061
Change-Id: I5980d18299a11a54f3789e006a33a8b9c9eedc9e
diff --git a/src/test/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapperTest.java b/src/test/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapperTest.java
index 189bb1e..08e25b6 100644
--- a/src/test/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapperTest.java
+++ b/src/test/java/com/google/crypto/tink/signature/PublicKeyVerifyWrapperTest.java
@@ -312,6 +312,31 @@
verifier.verify(sig2, data);
}
+ @Theory
+ public void noPrimary_verifyWorks() throws Exception {
+ PublicKeySign signer =
+ new PublicKeySignWrapper()
+ .wrap(
+ TestUtil.createPrimitiveSet(
+ TestUtil.createKeyset(
+ getPrivateKey(ecdsaPrivateKey, /*keyId=*/ 123, OutputPrefixType.TINK)),
+ PublicKeySign.class));
+ byte[] data = "data".getBytes(UTF_8);
+ byte[] sig = signer.sign(data);
+
+ Key publicKey =
+ getPublicKey(ecdsaPrivateKey.getPublicKey(), /*keyId=*/ 123, OutputPrefixType.TINK);
+ PublicKeyVerify verify = Registry.getPrimitive(publicKey.getKeyData(), PublicKeyVerify.class);
+ PrimitiveSet<PublicKeyVerify> verifyPrimitivesWithoutPrimary =
+ PrimitiveSet.newBuilder(PublicKeyVerify.class)
+ .addPrimitive(verify, publicKey)
+ .build();
+ PublicKeyVerify wrappedVerifier =
+ new PublicKeyVerifyWrapper().wrap(verifyPrimitivesWithoutPrimary);
+
+ wrappedVerifier.verify(sig, data);
+ }
+
@DataPoints("nonRawOutputPrefixType")
public static final OutputPrefixType[] NON_RAW_OUTPUT_PREFIX_TYPES =
new OutputPrefixType[] {