diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-04-02 23:07:10 -0500 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-04-02 23:07:10 -0500 |
commit | ac3e5bbf3eb6278973c7f417c56d69bfe2074920 (patch) | |
tree | 8ba39ea1648ae100a9e473ccac0e923122d7bc9f | |
parent | c053129791404f5f03df2c2243878f08352fb88d (diff) | |
download | cryptography-ac3e5bbf3eb6278973c7f417c56d69bfe2074920.tar.gz cryptography-ac3e5bbf3eb6278973c7f417c56d69bfe2074920.tar.bz2 cryptography-ac3e5bbf3eb6278973c7f417c56d69bfe2074920.zip |
add repr to KeyUsage
-rw-r--r-- | src/cryptography/x509.py | 17 | ||||
-rw-r--r-- | tests/test_x509_ext.py | 38 |
2 files changed, 55 insertions, 0 deletions
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py index 63c8767d..17ef6ddd 100644 --- a/src/cryptography/x509.py +++ b/src/cryptography/x509.py @@ -312,6 +312,23 @@ class KeyUsage(object): else: return self._decipher_only + def __repr__(self): + try: + encipher_only = self.encipher_only + decipher_only = self.decipher_only + except ValueError: + encipher_only = "N/A" + decipher_only = "N/A" + + return ("<KeyUsage(digital_signature={0.digital_signature}, " + "content_commitment={0.content_commitment}, " + "key_encipherment={0.key_encipherment}, " + "data_encipherment={0.data_encipherment}, " + "key_agreement={0.key_agreement}, " + "key_cert_sign={0.key_cert_sign}, crl_sign={0.crl_sign}, " + "encipher_only={1}, decipher_only={2})>").format( + self, encipher_only, decipher_only) + OID_COMMON_NAME = ObjectIdentifier("2.5.4.3") OID_COUNTRY_NAME = ObjectIdentifier("2.5.4.6") diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py index 7447ac4b..7fccaba6 100644 --- a/tests/test_x509_ext.py +++ b/tests/test_x509_ext.py @@ -131,6 +131,44 @@ class TestKeyUsage(object): with pytest.raises(ValueError): ku.decipher_only + def test_repr_key_agreement_false(self): + ku = x509.KeyUsage( + digital_signature=True, + content_commitment=True, + key_encipherment=False, + data_encipherment=False, + key_agreement=False, + key_cert_sign=True, + crl_sign=False, + encipher_only=False, + decipher_only=False + ) + assert repr(ku) == ( + "<KeyUsage(digital_signature=True, content_commitment=True, key_en" + "cipherment=False, data_encipherment=False, key_agreement=False, k" + "ey_cert_sign=True, crl_sign=False, encipher_only=N/A, decipher_on" + "ly=N/A)>" + ) + + def test_repr_key_agreement_true(self): + ku = x509.KeyUsage( + digital_signature=True, + content_commitment=True, + key_encipherment=False, + data_encipherment=False, + key_agreement=True, + key_cert_sign=True, + crl_sign=False, + encipher_only=False, + decipher_only=False + ) + assert repr(ku) == ( + "<KeyUsage(digital_signature=True, content_commitment=True, key_en" + "cipherment=False, data_encipherment=False, key_agreement=True, k" + "ey_cert_sign=True, crl_sign=False, encipher_only=False, decipher_" + "only=False)>" + ) + class TestBasicConstraints(object): def test_ca_not_boolean(self): |