From ac3e5bbf3eb6278973c7f417c56d69bfe2074920 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Thu, 2 Apr 2015 23:07:10 -0500 Subject: add repr to KeyUsage --- src/cryptography/x509.py | 17 +++++++++++++++++ tests/test_x509_ext.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) 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 ("").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) == ( + "" + ) + + 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) == ( + "" + ) + class TestBasicConstraints(object): def test_ca_not_boolean(self): -- cgit v1.2.3