Skip to content

Commit

Permalink
Run all test vectors for RsaSsaPssVerifyJce constructor.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 653325641
Change-Id: Id3e4da67805ad087703034d71d73bceb8ce9d6be
  • Loading branch information
juergw authored and copybara-github committed Jul 17, 2024
1 parent bd6b8b3 commit a1b21eb
Showing 1 changed file with 21 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,27 @@ public void verifySignatureInTestVector_works(
() -> verifier.verify(testVector.getSignature(), modifiedMessage));
}

@Test
public void constructorWorks() throws Exception {
SignatureTestVector testVector = TEST_VECTORS[0];
private static HashType toEnumHashType(RsaSsaPssParameters.HashType hash) {
if (hash == RsaSsaPssParameters.HashType.SHA256) {
return HashType.SHA256;
} else if (hash == RsaSsaPssParameters.HashType.SHA384) {
return HashType.SHA384;
} else if (hash == RsaSsaPssParameters.HashType.SHA512) {
return HashType.SHA512;
} else {
throw new IllegalArgumentException("Unsupported hash: " + hash);
}
}

@Theory
public void constructor_verifySignatureInTestVector_works(
@FromDataPoints("testVectors") SignatureTestVector testVector) throws Exception {
RsaSsaPssPublicKey testPublicKey =
(RsaSsaPssPublicKey) testVector.getPrivateKey().getPublicKey();
assertThat(testPublicKey.getParameters().getSigHashType())
.isEqualTo(RsaSsaPssParameters.HashType.SHA256);
assertThat(testPublicKey.getParameters().getMgf1HashType())
.isEqualTo(RsaSsaPssParameters.HashType.SHA256);
if (!testPublicKey.getParameters().getVariant().equals(RsaSsaPssParameters.Variant.NO_PREFIX)) {
// Constructor doesn't support output prefix.
return;
}
KeyFactory keyFactory = EngineFactory.KEY_FACTORY.getInstance("RSA");
RSAPublicKey rsaPublicKey =
(RSAPublicKey)
Expand All @@ -82,8 +94,8 @@ public void constructorWorks() throws Exception {
RsaSsaPssVerifyJce verify =
new RsaSsaPssVerifyJce(
rsaPublicKey,
HashType.SHA256,
HashType.SHA256,
toEnumHashType(testPublicKey.getParameters().getSigHashType()),
toEnumHashType(testPublicKey.getParameters().getMgf1HashType()),
testPublicKey.getParameters().getSaltLengthBytes());
verify.verify(testVector.getSignature(), testVector.getMessage());

Expand Down

0 comments on commit a1b21eb

Please sign in to comment.