aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2015-12-26 10:55:46 -0500
committerAlex Gaynor <alex.gaynor@gmail.com>2015-12-26 10:55:46 -0500
commit045fc7ea5e788eaeb2e444985d9dd94280dd6452 (patch)
treea70fd7f2125dcb4a418a5251dd77a3fd0b35b34a
parent4f76921ad87d71067158625aa0afedbba8ae1314 (diff)
parent5b90c97503b2ef2d4e7f69ba41b74e1e6f15b60e (diff)
downloadcryptography-045fc7ea5e788eaeb2e444985d9dd94280dd6452.tar.gz
cryptography-045fc7ea5e788eaeb2e444985d9dd94280dd6452.tar.bz2
cryptography-045fc7ea5e788eaeb2e444985d9dd94280dd6452.zip
Merge pull request #2576 from reaperhulk/extensions-indexable
make the Extensions class support indexing
-rw-r--r--src/cryptography/x509/extensions.py3
-rw-r--r--tests/test_x509_ext.py12
2 files changed, 15 insertions, 0 deletions
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 (
"<Extensions({0})>".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(