diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2017-09-14 07:43:07 +0800 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2017-09-13 19:43:07 -0400 |
commit | 7b6be923e24481c2db75b3737a3ee07e7f3fb292 (patch) | |
tree | ed87ea8cc8a5d763c29b06de2d70e26fb6e4c03d /src | |
parent | ab96a53bc9020a4d605d57dc972e45df5c8c4862 (diff) | |
download | cryptography-7b6be923e24481c2db75b3737a3ee07e7f3fb292.tar.gz cryptography-7b6be923e24481c2db75b3737a3ee07e7f3fb292.tar.bz2 cryptography-7b6be923e24481c2db75b3737a3ee07e7f3fb292.zip |
implement __hash__ on KeyUsage and ExtendedKeyUsage (#3913)
* implement __hash__ on KeyUsage and ExtendedKeyUsage
* properly use private values and alter test to catch that bug
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptography/x509/extensions.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py index 9d6b3e79..f6957b9d 100644 --- a/src/cryptography/x509/extensions.py +++ b/src/cryptography/x509/extensions.py @@ -755,6 +755,9 @@ class ExtendedKeyUsage(object): def __ne__(self, other): return not self == other + def __hash__(self): + return hash(tuple(self._usages)) + @utils.register_interface(ExtensionType) class OCSPNoCheck(object): @@ -933,6 +936,15 @@ class KeyUsage(object): def __ne__(self, other): return not self == other + def __hash__(self): + return hash(( + self.digital_signature, self.content_commitment, + self.key_encipherment, self.data_encipherment, + self.key_agreement, self.key_cert_sign, + self.crl_sign, self._encipher_only, + self._decipher_only + )) + @utils.register_interface(ExtensionType) class NameConstraints(object): |