aboutsummaryrefslogtreecommitdiffstats
path: root/src/cryptography/x509
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2017-09-14 07:43:07 +0800
committerAlex Gaynor <alex.gaynor@gmail.com>2017-09-13 19:43:07 -0400
commit7b6be923e24481c2db75b3737a3ee07e7f3fb292 (patch)
treeed87ea8cc8a5d763c29b06de2d70e26fb6e4c03d /src/cryptography/x509
parentab96a53bc9020a4d605d57dc972e45df5c8c4862 (diff)
downloadcryptography-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/cryptography/x509')
-rw-r--r--src/cryptography/x509/extensions.py12
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):