Skip to content
Snippets Groups Projects
Commit 23b14bab authored by Guillaume Valadon's avatar Guillaume Valadon
Browse files

Fix ASN1_BIT_STRING decoding error

parent 5477e210
No related branches found
No related tags found
No related merge requests found
......@@ -325,12 +325,14 @@ class ASN1_BIT_STRING(ASN1_Object):
super(ASN1_Object, self).__setattr__(name, value)
def __repr__(self):
if len(self.val) <= 16:
return "<%s[%s] (%d unused bit%s)>" % (self.__dict__.get("name", self.__class__.__name__), self.val.decode(), self.unused_bits, "s" if self.unused_bits>1 else "")
v = plain_str(self.val)
return "<%s[%s] (%d unused bit%s)>" % (self.__dict__.get("name", self.__class__.__name__), v, self.unused_bits, "s" if self.unused_bits>1 else "")
else:
s = self.val_readable
if len(s) > 20:
s = s[:10] + b"..." + s[-10:]
return "<%s[%s] (%d unused bit%s)>" % (self.__dict__.get("name", self.__class__.__name__), s.decode(), self.unused_bits, "s" if self.unused_bits>1 else "")
v = plain_str(self.val)
return "<%s[%s] (%d unused bit%s)>" % (self.__dict__.get("name", self.__class__.__name__), v, self.unused_bits, "s" if self.unused_bits>1 else "")
def __str__(self):
return self.val_readable
def __bytes__(self):
......
......@@ -777,6 +777,10 @@ a = ASN1_BIT_STRING("test", "value")
a
assert raw(a) == b'test'
a = ASN1_BIT_STRING(b"\xff"*16, "value")
a
assert raw(a) == b'\xff'*16
= ASN1 - ASN1_SEQUENCE
a = ASN1_SEQUENCE([ASN1_Object(1), ASN1_Object(0)])
assert a.strshow() == '# ASN1_SEQUENCE:\n <ASN1_Object[1]>\n <ASN1_Object[0]>\n'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment