|
51 | 51 | ) |
52 | 52 | from .utils import ( |
53 | 53 | _check_rsa_private_numbers, |
54 | | - compute_rsa_hash_digest, |
| 54 | + # compute_rsa_hash_digest, |
55 | 55 | generate_rsa_verification_test, |
56 | 56 | generate_rsa_verification_without_digest_test, |
57 | 57 | skip_fips_traditional_openssl, |
@@ -452,40 +452,64 @@ def test_pkcs1v15_signing(self, backend, subtests): |
452 | 452 | ) |
453 | 453 | @pytest.mark.supported( |
454 | 454 | only_if=lambda backend: backend.signature_hash_supported( |
455 | | - hashes.SHA1() |
| 455 | + hashes.SHA256() |
456 | 456 | ), |
457 | | - skip_message="Does not support SHA1 signature.", |
| 457 | + skip_message="Does not support SHA256 signature.", |
458 | 458 | ) |
459 | 459 | def test_pkcs1v15_signing_without_digest(self, backend, subtests): |
460 | | - vectors = _flatten_pkcs1_examples( |
461 | | - load_vectors_from_file( |
462 | | - os.path.join("asymmetric", "RSA", "pkcs1v15sign-vectors.txt"), |
463 | | - load_pkcs1_vectors, |
464 | | - ) |
| 460 | + vectors = load_vectors_from_file( |
| 461 | + os.path.join( |
| 462 | + "asymmetric", "RSA", "FIPS_186-2", "SigVer15_186-3.rsp" |
| 463 | + ), |
| 464 | + load_rsa_nist_vectors, |
465 | 465 | ) |
466 | | - for private, public, example in vectors: |
| 466 | + for params in vectors: |
467 | 467 | with subtests.test(): |
| 468 | + # TODO Why those not match? |
| 469 | + # p, q = rsa.rsa_recover_prime_factors( |
| 470 | + # params["modulus"], |
| 471 | + # params["public_exponent"], |
| 472 | + # params["private_exponent"], |
| 473 | + # ) |
| 474 | + # assert p == params["p"] |
| 475 | + # assert q == params["q"] |
| 476 | + |
| 477 | + dmp1 = rsa.rsa_crt_dmp1( |
| 478 | + params["private_exponent"], params["p"] |
| 479 | + ) |
| 480 | + dmq1 = rsa.rsa_crt_dmq1( |
| 481 | + params["private_exponent"], params["q"] |
| 482 | + ) |
| 483 | + iqmp = rsa.rsa_crt_iqmp(params["p"], params["q"]) |
| 484 | + |
468 | 485 | private_key = rsa.RSAPrivateNumbers( |
469 | | - p=private["p"], |
470 | | - q=private["q"], |
471 | | - d=private["private_exponent"], |
472 | | - dmp1=private["dmp1"], |
473 | | - dmq1=private["dmq1"], |
474 | | - iqmp=private["iqmp"], |
| 486 | + p=params["p"], |
| 487 | + q=params["q"], |
| 488 | + d=params["private_exponent"], |
| 489 | + dmp1=dmp1, |
| 490 | + dmq1=dmq1, |
| 491 | + iqmp=iqmp, |
475 | 492 | public_numbers=rsa.RSAPublicNumbers( |
476 | | - e=private["public_exponent"], n=private["modulus"] |
| 493 | + e=params["public_exponent"], n=params["modulus"] |
477 | 494 | ), |
478 | 495 | ).private_key(backend, unsafe_skip_rsa_key_validation=True) |
| 496 | + # signature = private_key.sign( |
| 497 | + # binascii.unhexlify( |
| 498 | + # compute_rsa_hash_digest( |
| 499 | + # backend, hashes.SHA256(), params["msg"] |
| 500 | + # ) |
| 501 | + # ), |
| 502 | + # padding.PKCS1v15(), |
| 503 | + # asym_utils.NoDigestInfo(), |
| 504 | + # ) |
| 505 | + |
| 506 | + # TODO Why even this does not works? |
479 | 507 | signature = private_key.sign( |
480 | | - binascii.unhexlify( |
481 | | - compute_rsa_hash_digest( |
482 | | - backend, hashes.SHA1(), example["message"] |
483 | | - ) |
484 | | - ), |
| 508 | + binascii.unhexlify(params["msg"]), |
485 | 509 | padding.PKCS1v15(), |
486 | | - asym_utils.NoDigestInfo(), |
| 510 | + hashes.SHA256(), |
487 | 511 | ) |
488 | | - assert binascii.hexlify(signature) == example["signature"] |
| 512 | + assert binascii.hexlify(signature) == params["s"] |
489 | 513 |
|
490 | 514 | @pytest.mark.supported( |
491 | 515 | only_if=lambda backend: backend.rsa_padding_supported( |
@@ -1567,12 +1591,12 @@ class TestRSAPKCS1Verification: |
1567 | 1591 | ) |
1568 | 1592 | ) |
1569 | 1593 |
|
1570 | | - test_rsa_pkcs1v15_verify_sha1_without_digest = pytest.mark.supported( |
| 1594 | + test_rsa_pkcs1v15_verify_sha256_without_digest = pytest.mark.supported( |
1571 | 1595 | only_if=lambda backend: ( |
1572 | | - backend.signature_hash_supported(hashes.SHA1()) |
| 1596 | + backend.signature_hash_supported(hashes.SHA256()) |
1573 | 1597 | and backend.rsa_padding_supported(padding.PKCS1v15()) |
1574 | 1598 | ), |
1575 | | - skip_message="Does not support SHA1 and PKCS1v1.5.", |
| 1599 | + skip_message="Does not support SHA256 and PKCS1v1.5.", |
1576 | 1600 | )( |
1577 | 1601 | generate_rsa_verification_without_digest_test( |
1578 | 1602 | load_rsa_nist_vectors, |
|
0 commit comments