@@ -177,10 +177,14 @@ def test_object_identifier(self):
177
177
def test_long_object_identifier (self ):
178
178
enc = asn1 .Encoder ()
179
179
enc .start ()
180
- enc .write ('39.2 .3' , asn1 .Numbers .ObjectIdentifier )
180
+ enc .write ('2.1482 .3' , asn1 .Numbers .ObjectIdentifier )
181
181
res = enc .output ()
182
182
assert res == b'\x06 \x03 \x8c \x1a \x03 '
183
183
enc .start ()
184
+ enc .write ('2.999.3' , asn1 .Numbers .ObjectIdentifier )
185
+ res = enc .output ()
186
+ assert res == b'\x06 \x03 \x88 \x37 \x03 '
187
+ enc .start ()
184
188
enc .write ('1.39.3' , asn1 .Numbers .ObjectIdentifier )
185
189
res = enc .output ()
186
190
assert res == b'\x06 \x02 \x4f \x03 '
@@ -341,7 +345,7 @@ def test_error_object_identifier(self):
341
345
enc = asn1 .Encoder ()
342
346
enc .start ()
343
347
pytest .raises (asn1 .Error , enc .write , '1' , asn1 .Numbers .ObjectIdentifier )
344
- pytest .raises (asn1 .Error , enc .write , '40 .2.3' , asn1 .Numbers .ObjectIdentifier )
348
+ pytest .raises (asn1 .Error , enc .write , '3 .2.3' , asn1 .Numbers .ObjectIdentifier )
345
349
pytest .raises (asn1 .Error , enc .write , '1.40.3' , asn1 .Numbers .ObjectIdentifier )
346
350
pytest .raises (asn1 .Error , enc .write , '1.2.3.' , asn1 .Numbers .ObjectIdentifier )
347
351
pytest .raises (asn1 .Error , enc .write , '.1.2.3' , asn1 .Numbers .ObjectIdentifier )
@@ -521,7 +525,11 @@ def test_long_object_identifier(self):
521
525
buf = b'\x06 \x03 \x8c \x1a \x03 '
522
526
dec .start (buf )
523
527
tag , val = dec .read ()
524
- assert val == u'39.2.3'
528
+ assert val == u'2.1482.3'
529
+ buf = b'\x06 \x03 \x88 \x37 \x03 '
530
+ dec .start (buf )
531
+ tag , val = dec .read ()
532
+ assert val == u'2.999.3'
525
533
buf = b'\x06 \x02 \x4f \x03 '
526
534
dec .start (buf )
527
535
tag , val = dec .read ()
@@ -745,13 +753,7 @@ def test_error_non_normalized_negative_integer(self):
745
753
pytest .raises (asn1 .Error , dec .read )
746
754
747
755
def test_error_non_normalised_object_identifier (self ):
748
- buf = b'\x06 \x02 \x80 \x01 '
749
- dec = asn1 .Decoder ()
750
- dec .start (buf )
751
- pytest .raises (asn1 .Error , dec .read )
752
-
753
- def test_error_object_identifier_with_too_large_first_component (self ):
754
- buf = b'\x06 \x02 \x8c \x40 '
756
+ buf = b'\x06 \x02 \x01 \x80 '
755
757
dec = asn1 .Decoder ()
756
758
dec .start (buf )
757
759
pytest .raises (asn1 .Error , dec .read )
@@ -1079,12 +1081,22 @@ def test_octet_string(self):
1079
1081
def test_null (self ):
1080
1082
TestEncoderDecoder .assert_encode_decode (None , asn1 .Numbers .Null )
1081
1083
1082
- def test_object_identifier (self ):
1084
+ def test_real_object_identifier (self ):
1083
1085
TestEncoderDecoder .assert_encode_decode (
1084
1086
'1.2.840.113554.1.2.1.1' ,
1085
1087
asn1 .Numbers .ObjectIdentifier
1086
1088
)
1087
1089
1090
+ def test_long_object_identifier (self ):
1091
+ for v in \
1092
+ (
1093
+ '2.60.3' ,
1094
+ '2.999.3' ,
1095
+ '1.39.3' ,
1096
+ '1.2.300000'
1097
+ ):
1098
+ TestEncoderDecoder .assert_encode_decode (v , asn1 .Numbers .ObjectIdentifier )
1099
+
1088
1100
def test_enumerated (self ):
1089
1101
for v in (1 , 2 , 42 ):
1090
1102
TestEncoderDecoder .assert_encode_decode (v , asn1 .Numbers .Enumerated )
0 commit comments