aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2018-11-05 07:20:26 +0800
committerAlex Gaynor <alex.gaynor@gmail.com>2018-11-04 18:20:25 -0500
commit7d3daefc4db664cd7c344a59c0cad99c4bcd82eb (patch)
tree9b8ebf912bb87a74f45c0341d308d2a79ebe65c2 /tests
parent98420eac4525345cd95c2afa71a04089db8ac8e6 (diff)
downloadcryptography-7d3daefc4db664cd7c344a59c0cad99c4bcd82eb.tar.gz
cryptography-7d3daefc4db664cd7c344a59c0cad99c4bcd82eb.tar.bz2
cryptography-7d3daefc4db664cd7c344a59c0cad99c4bcd82eb.zip
parametrize a bunch of tests (#4365)
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/primitives/test_rsa.py339
1 files changed, 58 insertions, 281 deletions
diff --git a/tests/hazmat/primitives/test_rsa.py b/tests/hazmat/primitives/test_rsa.py
index ffe62594..268ee9d9 100644
--- a/tests/hazmat/primitives/test_rsa.py
+++ b/tests/hazmat/primitives/test_rsa.py
@@ -1853,304 +1853,81 @@ class TestRSANumbers(object):
with pytest.raises(TypeError):
rsa.RSAPublicNumbers(e=1, n=None)
- def test_private_numbers_invalid_types(self):
- public_numbers = rsa.RSAPublicNumbers(e=1, n=15)
-
- with pytest.raises(TypeError):
- rsa.RSAPrivateNumbers(
- p=None,
- q=5,
- d=1,
- dmp1=1,
- dmq1=1,
- iqmp=2,
- public_numbers=public_numbers
- )
-
- with pytest.raises(TypeError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=None,
- d=1,
- dmp1=1,
- dmq1=1,
- iqmp=2,
- public_numbers=public_numbers
- )
-
- with pytest.raises(TypeError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=5,
- d=None,
- dmp1=1,
- dmq1=1,
- iqmp=2,
- public_numbers=public_numbers
- )
-
- with pytest.raises(TypeError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=5,
- d=1,
- dmp1=None,
- dmq1=1,
- iqmp=2,
- public_numbers=public_numbers
- )
-
- with pytest.raises(TypeError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=5,
- d=1,
- dmp1=1,
- dmq1=None,
- iqmp=2,
- public_numbers=public_numbers
- )
-
+ @pytest.mark.parametrize(
+ ("p", "q", "d", "dmp1", "dmq1", "iqmp", "public_numbers"),
+ [
+ (None, 5, 1, 1, 1, 2, rsa.RSAPublicNumbers(e=1, n=15)),
+ (3, None, 1, 1, 1, 2, rsa.RSAPublicNumbers(e=1, n=15)),
+ (3, 5, None, 1, 1, 2, rsa.RSAPublicNumbers(e=1, n=15)),
+ (3, 5, 1, None, 1, 2, rsa.RSAPublicNumbers(e=1, n=15)),
+ (3, 5, 1, 1, None, 2, rsa.RSAPublicNumbers(e=1, n=15)),
+ (3, 5, 1, 1, 1, None, rsa.RSAPublicNumbers(e=1, n=15)),
+ (3, 5, 1, 1, 1, 2, None),
+ ]
+ )
+ def test_private_numbers_invalid_types(self, p, q, d, dmp1, dmq1, iqmp,
+ public_numbers):
with pytest.raises(TypeError):
rsa.RSAPrivateNumbers(
- p=3,
- q=5,
- d=1,
- dmp1=1,
- dmq1=1,
- iqmp=None,
+ p=p, q=q,
+ d=d,
+ dmp1=dmp1,
+ dmq1=dmq1,
+ iqmp=iqmp,
public_numbers=public_numbers
)
- with pytest.raises(TypeError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=5,
- d=1,
- dmp1=1,
- dmq1=1,
- iqmp=2,
- public_numbers=None
- )
-
- def test_invalid_public_numbers_argument_values(self, backend):
+ @pytest.mark.parametrize(
+ ("e", "n"),
+ [
+ (7, 2), # modulus < 3
+ (1, 15), # public_exponent < 3
+ (17, 15), # public_exponent > modulus
+ (14, 15), # public_exponent not odd
+ ]
+ )
+ def test_invalid_public_numbers_argument_values(self, e, n, backend):
# Start with public_exponent=7, modulus=15. Then change one value at a
# time to test the bounds.
- # Test a modulus < 3.
-
- with pytest.raises(ValueError):
- rsa.RSAPublicNumbers(e=7, n=2).public_key(backend)
-
- # Test a public_exponent < 3
- with pytest.raises(ValueError):
- rsa.RSAPublicNumbers(e=1, n=15).public_key(backend)
-
- # Test a public_exponent > modulus
- with pytest.raises(ValueError):
- rsa.RSAPublicNumbers(e=17, n=15).public_key(backend)
-
- # Test a public_exponent that is not odd.
with pytest.raises(ValueError):
- rsa.RSAPublicNumbers(e=14, n=15).public_key(backend)
+ rsa.RSAPublicNumbers(e=e, n=n).public_key(backend)
- def test_invalid_private_numbers_argument_values(self, backend):
+ @pytest.mark.parametrize(
+ ("p", "q", "d", "dmp1", "dmq1", "iqmp", "e", "n"),
+ [
+ (3, 11, 3, 1, 3, 2, 7, 2), # modulus < 3
+ (3, 11, 3, 1, 3, 2, 7, 35), # modulus != p * q
+ (37, 11, 3, 1, 3, 2, 7, 33), # p > modulus
+ (3, 37, 3, 1, 3, 2, 7, 33), # q > modulus
+ (3, 11, 3, 35, 3, 2, 7, 33), # dmp1 > modulus
+ (3, 11, 3, 1, 35, 2, 7, 33), # dmq1 > modulus
+ (3, 11, 3, 1, 3, 35, 7, 33), # iqmp > modulus
+ (3, 11, 37, 1, 3, 2, 7, 33), # d > modulus
+ (3, 11, 3, 1, 3, 2, 1, 33), # public_exponent < 3
+ (3, 11, 3, 1, 3, 35, 65537, 33), # public_exponent > modulus
+ (3, 11, 3, 1, 3, 2, 6, 33), # public_exponent is not odd
+ (3, 11, 3, 2, 3, 2, 7, 33), # dmp1 is not odd
+ (3, 11, 3, 1, 4, 2, 7, 33), # dmq1 is not odd
+ ]
+ )
+ def test_invalid_private_numbers_argument_values(self, p, q, d, dmp1, dmq1,
+ iqmp, e, n, backend):
# Start with p=3, q=11, private_exponent=3, public_exponent=7,
# modulus=33, dmp1=1, dmq1=3, iqmp=2. Then change one value at
# a time to test the bounds.
- # Test a modulus < 3.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=2
- )
- ).private_key(backend)
-
- # Test a modulus != p * q.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=35
- )
- ).private_key(backend)
-
- # Test a p > modulus.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=37,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test a q > modulus.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=37,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test a dmp1 > modulus.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=35,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test a dmq1 > modulus.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=35,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test an iqmp > modulus.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=35,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test a private_exponent > modulus
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=37,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test a public_exponent < 3
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=1,
- n=33
- )
- ).private_key(backend)
-
- # Test a public_exponent > modulus
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=35,
- public_numbers=rsa.RSAPublicNumbers(
- e=65537,
- n=33
- )
- ).private_key(backend)
-
- # Test a public_exponent that is not odd.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=6,
- n=33
- )
- ).private_key(backend)
-
- # Test a dmp1 that is not odd.
- with pytest.raises(ValueError):
- rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=2,
- dmq1=3,
- iqmp=2,
- public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
- )
- ).private_key(backend)
-
- # Test a dmq1 that is not odd.
with pytest.raises(ValueError):
rsa.RSAPrivateNumbers(
- p=3,
- q=11,
- d=3,
- dmp1=1,
- dmq1=4,
- iqmp=2,
+ p=p,
+ q=q,
+ d=d,
+ dmp1=dmp1,
+ dmq1=dmq1,
+ iqmp=iqmp,
public_numbers=rsa.RSAPublicNumbers(
- e=7,
- n=33
+ e=e,
+ n=n
)
).private_key(backend)