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 /tests/x509/test_x509_ext.py | |
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 'tests/x509/test_x509_ext.py')
-rw-r--r-- | tests/x509/test_x509_ext.py | 48 |
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) |