aboutsummaryrefslogtreecommitdiffstats
path: root/tests
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 /tests
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 'tests')
-rw-r--r--tests/x509/test_x509_ext.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/x509/test_x509_ext.py b/tests/x509/test_x509_ext.py
index 8d13753d..62ce9050 100644
--- a/tests/x509/test_x509_ext.py
+++ b/tests/x509/test_x509_ext.py
@@ -896,6 +896,43 @@ class TestKeyUsage(object):
assert ku != ku2
assert ku != object()
+ def test_hash(self):
+ ku = x509.KeyUsage(
+ digital_signature=False,
+ content_commitment=False,
+ key_encipherment=False,
+ data_encipherment=False,
+ key_agreement=True,
+ key_cert_sign=False,
+ crl_sign=False,
+ encipher_only=False,
+ decipher_only=True
+ )
+ ku2 = x509.KeyUsage(
+ digital_signature=False,
+ content_commitment=False,
+ key_encipherment=False,
+ data_encipherment=False,
+ key_agreement=True,
+ key_cert_sign=False,
+ crl_sign=False,
+ encipher_only=False,
+ decipher_only=True
+ )
+ ku3 = x509.KeyUsage(
+ digital_signature=False,
+ content_commitment=True,
+ key_encipherment=False,
+ data_encipherment=False,
+ key_agreement=False,
+ key_cert_sign=False,
+ crl_sign=False,
+ encipher_only=False,
+ decipher_only=False
+ )
+ assert hash(ku) == hash(ku2)
+ assert hash(ku) != hash(ku3)
+
class TestSubjectKeyIdentifier(object):
def test_properties(self):
@@ -1177,6 +1214,17 @@ class TestExtendedKeyUsage(object):
assert eku != eku2
assert eku != object()
+ def test_hash(self):
+ eku = x509.ExtendedKeyUsage([
+ x509.ObjectIdentifier("1.3.6"), x509.ObjectIdentifier("1.3.7")
+ ])
+ eku2 = x509.ExtendedKeyUsage([
+ x509.ObjectIdentifier("1.3.6"), x509.ObjectIdentifier("1.3.7")
+ ])
+ eku3 = x509.ExtendedKeyUsage([x509.ObjectIdentifier("1.3.6")])
+ assert hash(eku) == hash(eku2)
+ assert hash(eku) != hash(eku3)
+
@pytest.mark.requires_backend_interface(interface=RSABackend)
@pytest.mark.requires_backend_interface(interface=X509Backend)