aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2015-04-12 09:20:43 -0400
committerAlex Gaynor <alex.gaynor@gmail.com>2015-04-12 09:20:43 -0400
commitd459a8a16c417e0db59de0a643aeb9079b45b9bb (patch)
tree4781fed44bdbdb6d83084e741ee8d2cdc51eb7bd
parentb8d29e0dcbfea18cac85e41b13391ddd481be816 (diff)
parentac3e5bbf3eb6278973c7f417c56d69bfe2074920 (diff)
downloadcryptography-d459a8a16c417e0db59de0a643aeb9079b45b9bb.tar.gz
cryptography-d459a8a16c417e0db59de0a643aeb9079b45b9bb.tar.bz2
cryptography-d459a8a16c417e0db59de0a643aeb9079b45b9bb.zip
Merge pull request #1814 from reaperhulk/keyusage-repr
add repr to KeyUsage
-rw-r--r--src/cryptography/x509.py17
-rw-r--r--tests/test_x509_ext.py38
2 files changed, 55 insertions, 0 deletions
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index 8554aeab..a9b6f8bd 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -348,6 +348,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)
+
class SubjectKeyIdentifier(object):
def __init__(self, digest):
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index 194b18c8..c2d33d92 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -134,6 +134,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 TestSubjectKeyIdentifier(object):
def test_properties(self):