From 7b6be923e24481c2db75b3737a3ee07e7f3fb292 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Thu, 14 Sep 2017 07:43:07 +0800 Subject: implement __hash__ on KeyUsage and ExtendedKeyUsage (#3913) * implement __hash__ on KeyUsage and ExtendedKeyUsage * properly use private values and alter test to catch that bug --- src/cryptography/x509/extensions.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/cryptography/x509') 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): -- cgit v1.2.3