Skip to content

Commit 712d5e2

Browse files
committed
Add test case when signing using PSS without digest
1 parent 17083dc commit 712d5e2

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

tests/hazmat/primitives/test_rsa.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,52 @@ def test_pss_signing(self, subtests, backend):
559559
hashes.SHA1(),
560560
)
561561

562+
@pytest.mark.supported(
563+
only_if=lambda backend: backend.rsa_padding_supported(
564+
padding.PSS(
565+
mgf=padding.MGF1(hashes.SHA1()),
566+
salt_length=padding.PSS.MAX_LENGTH,
567+
)
568+
),
569+
skip_message="Does not support PSS.",
570+
)
571+
@pytest.mark.supported(
572+
only_if=lambda backend: backend.signature_hash_supported(
573+
hashes.SHA1()
574+
),
575+
skip_message="Does not support SHA1 signature.",
576+
)
577+
def test_pss_signing_without_digest(self, backend, subtests):
578+
for private, public, example in _flatten_pkcs1_examples(
579+
load_vectors_from_file(
580+
os.path.join(
581+
"asymmetric", "RSA", "pkcs-1v2-1d2-vec", "pss-vect.txt"
582+
),
583+
load_pkcs1_vectors,
584+
)
585+
):
586+
with subtests.test():
587+
private_key = rsa.RSAPrivateNumbers(
588+
p=private["p"],
589+
q=private["q"],
590+
d=private["private_exponent"],
591+
dmp1=private["dmp1"],
592+
dmq1=private["dmq1"],
593+
iqmp=private["iqmp"],
594+
public_numbers=rsa.RSAPublicNumbers(
595+
e=private["public_exponent"], n=private["modulus"]
596+
),
597+
).private_key(backend, unsafe_skip_rsa_key_validation=True)
598+
with pytest.raises(TypeError):
599+
private_key.sign(
600+
binascii.unhexlify(example["message"]),
601+
padding.PSS(
602+
mgf=padding.MGF1(algorithm=hashes.SHA1()),
603+
salt_length=padding.PSS.MAX_LENGTH,
604+
),
605+
asym_utils.NoDigestInfo(),
606+
)
607+
562608
@pytest.mark.supported(
563609
only_if=lambda backend: backend.rsa_padding_supported(
564610
padding.PSS(

0 commit comments

Comments
 (0)