Skip to content

Commit

Permalink
BER and DER encoding of string values of length 128 and longer.
Browse files Browse the repository at this point in the history
  • Loading branch information
eerimoq committed Jan 24, 2018
1 parent 7c494fd commit 535f0f0
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 18 deletions.
18 changes: 9 additions & 9 deletions asn1tools/codecs/ber.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -283,7 +283,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand Down Expand Up @@ -487,7 +487,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data)

def decode(self, data, offset):
Expand All @@ -510,7 +510,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -533,7 +533,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -556,7 +556,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -579,7 +579,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('utf-8'))

def decode(self, data, offset):
Expand All @@ -602,7 +602,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data)

def decode(self, data, offset):
Expand Down Expand Up @@ -671,7 +671,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data)

def decode(self, data, offset):
Expand Down
18 changes: 9 additions & 9 deletions asn1tools/codecs/der.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -283,7 +283,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand Down Expand Up @@ -487,7 +487,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data)

def decode(self, data, offset):
Expand All @@ -510,7 +510,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -533,7 +533,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -556,7 +556,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('ascii'))

def decode(self, data, offset):
Expand All @@ -579,7 +579,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data.encode('utf-8'))

def decode(self, data, offset):
Expand All @@ -602,7 +602,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data)

def decode(self, data, offset):
Expand Down Expand Up @@ -667,7 +667,7 @@ def __init__(self, name):

def encode(self, data, encoded):
encoded.extend(self.tag)
encoded.append(len(data))
encoded.extend(encode_length_definite(len(data)))
encoded.extend(data)

def decode(self, data, offset):
Expand Down
2 changes: 2 additions & 0 deletions tests/test_ber.py
Original file line number Diff line number Diff line change
Expand Up @@ -1319,6 +1319,8 @@ def test_all_types(self):
('Integer', -32769, b'\x02\x03\xff\x7f\xff'),
('Bitstring', (b'\x80', 1), b'\x03\x02\x07\x80'),
('Octetstring', b'\x00', b'\x04\x01\x00'),
('Octetstring', 127 * b'\x55', b'\x04\x7f' + 127 * b'\x55'),
('Octetstring', 128 * b'\xaa', b'\x04\x81\x80' + 128 * b'\xaa'),
('Null', None, b'\x05\x00'),
('Objectidentifier', '1.2', b'\x06\x01\x2a'),
('Enumerated', 'one', b'\x0a\x01\x01'),
Expand Down
2 changes: 2 additions & 0 deletions tests/test_der.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ def test_all_types(self):
('Integer', -32769, b'\x02\x03\xff\x7f\xff'),
('Bitstring', (b'\x80', 1), b'\x03\x02\x07\x80'),
('Octetstring', b'\x00', b'\x04\x01\x00'),
('Octetstring', 127 * b'\x55', b'\x04\x7f' + 127 * b'\x55'),
('Octetstring', 128 * b'\xaa', b'\x04\x81\x80' + 128 * b'\xaa'),
('Null', None, b'\x05\x00'),
('Objectidentifier', '1.2', b'\x06\x01\x2a'),
('Enumerated', 'one', b'\x0a\x01\x01'),
Expand Down

0 comments on commit 535f0f0

Please sign in to comment.