diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2014-03-30 15:58:20 -0500 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2014-03-30 15:58:20 -0500 |
commit | 99b0b1f78d5ca9888f996d8d9b0392ca32b8210f (patch) | |
tree | 38ae8cd1d265e4e512d60983ec45796ee5c5dc16 /cryptography | |
parent | 3b1e6e4b2ec5274b8e21c446e18fc993001e637e (diff) | |
parent | 5b50613aaa9ec06d4b9f350ddbe6427b6d85e424 (diff) | |
download | cryptography-99b0b1f78d5ca9888f996d8d9b0392ca32b8210f.tar.gz cryptography-99b0b1f78d5ca9888f996d8d9b0392ca32b8210f.tar.bz2 cryptography-99b0b1f78d5ca9888f996d8d9b0392ca32b8210f.zip |
Merge pull request #870 from skeuomorf/dsa-public-key
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 |