diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-12-24 10:27:18 -0500 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-12-24 10:27:18 -0500 |
commit | a1476217655be21dde7453fd35d80b8fae3ecb1a (patch) | |
tree | 1da4e1c088dbbe9089e420f14b6fcdddceef9619 /src | |
parent | b9d9021b9961c8616b6ed4ec987d76dead284059 (diff) | |
download | cryptography-a1476217655be21dde7453fd35d80b8fae3ecb1a.tar.gz cryptography-a1476217655be21dde7453fd35d80b8fae3ecb1a.tar.bz2 cryptography-a1476217655be21dde7453fd35d80b8fae3ecb1a.zip |
Make indexing a CRL O(1) instead of O(n).
This drops support for slicing, if that's important someone say something and I can add it back
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/x509.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py index 7b9f71cd..4bddee4c 100644 --- a/src/cryptography/hazmat/backends/openssl/x509.py +++ b/src/cryptography/hazmat/backends/openssl/x509.py @@ -6,6 +6,7 @@ from __future__ import absolute_import, division, print_function import datetime import ipaddress +import operator from email.utils import parseaddr @@ -872,8 +873,10 @@ class _CertificateRevocationList(object): yield self._revoked_cert(i) def __getitem__(self, idx): - # TODO: indexing is O(n) - return list(self)[idx] + idx = operator.index(idx) + if not 0 <= idx < len(self): + raise IndexError + return self._revoked_cert(idx) def __len__(self): revoked = self._backend._lib.X509_CRL_get_REVOKED(self._x509_crl) |