aboutsummaryrefslogtreecommitdiffstats
path: root/src/cryptography/hazmat/_der.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/cryptography/hazmat/_der.py')
-rw-r--r--src/cryptography/hazmat/_der.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/cryptography/hazmat/_der.py b/src/cryptography/hazmat/_der.py
index 3a121a85..51518d64 100644
--- a/src/cryptography/hazmat/_der.py
+++ b/src/cryptography/hazmat/_der.py
@@ -36,6 +36,13 @@ class DERReader(object):
def __init__(self, data):
self.data = memoryview(data)
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, tb):
+ if exc_value is None:
+ self.check_empty()
+
def is_empty(self):
return len(self.data) == 0
@@ -100,9 +107,8 @@ class DERReader(object):
return body
def read_single_element(self, expected_tag):
- ret = self.read_element(expected_tag)
- self.check_empty()
- return ret
+ with self:
+ return self.read_element(expected_tag)
def read_optional_element(self, expected_tag):
if len(self.data) > 0 and six.indexbytes(self.data, 0) == expected_tag: