aboutsummaryrefslogtreecommitdiffstats
path: root/cryptography/hazmat
diff options
context:
space:
mode:
Diffstat (limited to 'cryptography/hazmat')
-rw-r--r--cryptography/hazmat/primitives/asymmetric/rsa.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/cryptography/hazmat/primitives/asymmetric/rsa.py b/cryptography/hazmat/primitives/asymmetric/rsa.py
index 18fcac26..024f1103 100644
--- a/cryptography/hazmat/primitives/asymmetric/rsa.py
+++ b/cryptography/hazmat/primitives/asymmetric/rsa.py
@@ -262,6 +262,40 @@ class RSAPrivateKey(object):
class RSAPrivateNumbers(object):
def __init__(self, p, q, d, dmp1, dmq1, iqmp,
public_numbers):
+ if not isinstance(p, six.integer_types):
+ raise TypeError(
+ "RSAPrivateNumbers' p argument must be an integer."
+ )
+ if not isinstance(q, six.integer_types):
+ raise TypeError(
+ "RSAPrivateNumbers' q argument must be an integer."
+ )
+
+ if not isinstance(d, six.integer_types):
+ raise TypeError(
+ "RSAPrivateNumbers' d argument must be an integer."
+ )
+
+ if not isinstance(dmp1, six.integer_types):
+ raise TypeError(
+ "RSAPrivateNumbers' dmp1 argument must be an integer."
+ )
+ if not isinstance(dmq1, six.integer_types):
+ raise TypeError(
+ "RSAPrivateNumbers' dmq1 argument must be an integer."
+ )
+
+ if not isinstance(iqmp, six.integer_types):
+ raise TypeError(
+ "RSAPrivateNumbers' iqmp argument must be an integer."
+ )
+
+ if not isinstance(public_numbers, RSAPublicNumbers):
+ raise TypeError(
+ "RSAPrivateNumbers' public_numbers must be an RSAPublicNumbers"
+ " instance."
+ )
+
self._p = p
self._q = q
self._d = d
@@ -301,6 +335,12 @@ class RSAPrivateNumbers(object):
class RSAPublicNumbers(object):
def __init__(self, e, n):
+ if (
+ not isinstance(e, six.integer_types) or
+ not isinstance(n, six.integer_types)
+ ):
+ raise TypeError("RSAPrivateNumbers arguments must be integers.")
+
self._e = e
self._n = n