diff options
author | Mohammed Attia <skeuomorf@gmail.com> | 2014-03-30 02:46:13 +0200 |
---|---|---|
committer | Mohammed Attia <skeuomorf@gmail.com> | 2014-03-30 07:45:32 +0200 |
commit | 5b50613aaa9ec06d4b9f350ddbe6427b6d85e424 (patch) | |
tree | ffd0aadd89e2750667cb3e66e6707b382f684f87 /cryptography | |
parent | a7f6edfb9d26d81c748a71bfd64f179f3633af28 (diff) | |
download | cryptography-5b50613aaa9ec06d4b9f350ddbe6427b6d85e424.tar.gz cryptography-5b50613aaa9ec06d4b9f350ddbe6427b6d85e424.tar.bz2 cryptography-5b50613aaa9ec06d4b9f350ddbe6427b6d85e424.zip |
Add DSA public key api, docs and tests
Diffstat (limited to 'cryptography')
-rw-r--r-- | cryptography/hazmat/primitives/asymmetric/dsa.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cryptography/hazmat/primitives/asymmetric/dsa.py b/cryptography/hazmat/primitives/asymmetric/dsa.py index c368e783..a0631ce8 100644 --- a/cryptography/hazmat/primitives/asymmetric/dsa.py +++ b/cryptography/hazmat/primitives/asymmetric/dsa.py @@ -72,3 +72,28 @@ class DSAParameters(object): @property def g(self): return self.generator + + +@utils.register_interface(interfaces.DSAPublicKey) +class DSAPublicKey(object): + def __init__(self, modulus, subgroup_order, generator, y): + _check_dsa_parameters(modulus, subgroup_order, generator) + if not isinstance(y, six.integer_types): + raise TypeError("y must be an integer") + + self._modulus = modulus + self._subgroup_order = subgroup_order + self._generator = generator + self._y = y + + @property + def key_size(self): + return utils.bit_length(self._modulus) + + @property + def y(self): + return self._y + + def parameters(self): + return DSAParameters(self._modulus, self._subgroup_order, + self._generator)
\ No newline at end of file |