X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=blobdiff_plain;f=pyderasn.py;h=a560eda9b8c0d5fc2ac1346230dc12622de28206;hp=68d67d07e91a746886d22bb629d19a8ae6000f43;hb=57cf347a430ce0c6ab665985d1e07d4960236c0c;hpb=2aaa384be26f265bf37579a0d23145cb30b6753c diff --git a/pyderasn.py b/pyderasn.py index 68d67d0..a560eda 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -843,6 +843,7 @@ class Obj(object): "offset", "llen", "vlen", + "bered", ) def __init__( @@ -864,6 +865,7 @@ class Obj(object): self.optional = optional self.offset, self.llen, self.vlen = _decoded self.default = None + self.bered = False @property def ready(self): # pragma: no cover @@ -1398,10 +1400,14 @@ class Boolean(Obj): offset=offset, ) first_octet = byte2int(v) + bered = False if first_octet == 0: value = False elif first_octet == 0xFF: value = True + elif ctx.get("bered", False): + value = True + bered = True else: raise DecodeError( "unacceptable Boolean value", @@ -1417,6 +1423,7 @@ class Boolean(Obj): optional=self.optional, _decoded=(offset, 1, 1), ) + obj.bered = bered return obj, v[1:] def __repr__(self):