From 5b90c97503b2ef2d4e7f69ba41b74e1e6f15b60e Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sat, 26 Dec 2015 00:52:58 -0600 Subject: make the Extensions class support indexing --- src/cryptography/x509/extensions.py | 3 +++ tests/test_x509_ext.py | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py index 15feb717..7ec653d0 100644 --- a/src/cryptography/x509/extensions.py +++ b/src/cryptography/x509/extensions.py @@ -102,6 +102,9 @@ class Extensions(object): def __len__(self): return len(self._extensions) + def __getitem__(self, idx): + return self._extensions[idx] + def __repr__(self): return ( "".format(self._extensions) diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py index d9743c8e..1144d47a 100644 --- a/tests/test_x509_ext.py +++ b/tests/test_x509_ext.py @@ -858,6 +858,18 @@ class TestExtensions(object): exts.get_extension_for_class(x509.IssuerAlternativeName) assert exc.value.oid == ExtensionOID.ISSUER_ALTERNATIVE_NAME + def test_indexing(self, backend): + cert = _load_cert( + os.path.join("x509", "cryptography.io.pem"), + x509.load_pem_x509_certificate, + backend + ) + exts = cert.extensions + assert exts[-1] == exts[7] + assert len(exts[3:5]) == 2 + assert exts[2:4][0] == exts[2] + assert exts[2:4][1] == exts[3] + def test_one_extension_get_for_class(self, backend): cert = _load_cert( os.path.join( -- cgit v1.2.3