I also looked at the format of this great tool https://lapo.it/asn1js/.
Now it will output like below. 

sequence[off=0, len=2+1507(undefined)]
    object identifier[off=2, len=2+9] 1.2.840.113549.1.7.2
    [0][off=13, len=2+1492(undefined)]
        sequence[off=15, len=2+1488(undefined)]
            integer[off=17, len=2+1] 1
            set[off=20, len=2+11]
                sequence[off=22, len=2+9]
                    object identifier[off=24, len=2+5] 1.3.14.3.2.26
                    null[off=31, len=2+0] null
            sequence[off=33, len=2+35(undefined)]
                object identifier[off=35, len=2+9] 1.2.840.113549.1.7.1
                [0][off=46, len=2+20(undefined)]
                    octet string[off=48, len=2+16(undefined)]
                        octet string[off=50, len=2+12] 12 octets
            [0][off=70, len=4+1122]
                sequence[off=74, len=4+525]
                    sequence[off=78, len=4+374]
                        [0][off=82, len=2+3]
                            integer[off=84, len=2+1] 2
                        integer[off=87, len=2+1] 1
                        sequence[off=90, len=2+13]
                            object identifier[off=92, len=2+9] 
1.2.840.113549.1.1.4
                            null[off=103, len=2+0] null
                        sequence[off=105, len=2+37]
                            set[off=107, len=2+22]
                                sequence[off=109, len=2+20]
                                    object identifier[off=111, len=2+3] 2.5.4.10
                                    printable string[off=116, len=2+13] Bouncy 
Castle
                            set[off=131, len=2+11]
                                sequence[off=133, len=2+9]
                                    object identifier[off=135, len=2+3] 2.5.4.6
                                    printable string[off=140, len=2+2] AU
                        sequence[off=144, len=2+30]
                            utc time[off=146, len=2+13] Sun Oct 24 12:30:58 CST 
2004
                            utc time[off=161, len=2+13] Tue Feb 01 12:30:58 CST 
2005
                        sequence[off=176, len=2+37]
                            set[off=178, len=2+22]
                                sequence[off=180, len=2+20]
                                    object identifier[off=182, len=2+3] 2.5.4.10
                                    printable string[off=187, len=2+13] Bouncy 
Castle
                            set[off=202, len=2+11]
                                sequence[off=204, len=2+9]
                                    object identifier[off=206, len=2+3] 2.5.4.6
                                    printable string[off=211, len=2+2] AU
                        sequence[off=215, len=3+159]
                            sequence[off=218, len=2+13]
                                object identifier[off=220, len=2+9] 
1.2.840.113549.1.1.1
                                null[off=231, len=2+0] null
                            bit string[off=233, len=3+141] 140 bytes
                        [3][off=377, len=2+77]
                            sequence[off=379, len=2+75]
                                sequence[off=381, len=2+29]
                                    object identifier[off=383, len=2+3] 
2.5.29.14
                                    octet string[off=388, len=2+22] 22 octets
                                sequence[off=412, len=2+31]
                                    object identifier[off=414, len=2+3] 
2.5.29.35
                                    octet string[off=419, len=2+24] 24 octets
                                sequence[off=445, len=2+9]
                                    object identifier[off=447, len=2+3] 
2.5.29.19
                                    octet string[off=452, len=2+2] 2 octets
                    sequence[off=456, len=2+13]
                        object identifier[off=458, len=2+9] 1.2.840.113549.1.1.4
                        null[off=469, len=2+0] null
                    bit string[off=471, len=3+129] 128 bytes
                sequence[off=603, len=4+589]
                    sequence[off=607, len=4+438]
                        [0][off=611, len=2+3]
                            integer[off=613, len=2+1] 2
                        integer[off=616, len=2+1] 2
                        sequence[off=619, len=2+13]
                            object identifier[off=621, len=2+9] 
1.2.840.113549.1.1.4
                            null[off=632, len=2+0] null
                        sequence[off=634, len=2+37]
                            set[off=636, len=2+22]
                                sequence[off=638, len=2+20]
                                    object identifier[off=640, len=2+3] 2.5.4.10
                                    printable string[off=645, len=2+13] Bouncy 
Castle
                            set[off=660, len=2+11]
                                sequence[off=662, len=2+9]
                                    object identifier[off=664, len=2+3] 2.5.4.6
                                    printable string[off=669, len=2+2] AU
                        sequence[off=673, len=2+30]
                            utc time[off=675, len=2+13] Sun Oct 24 12:30:59 CST 
2004
                            utc time[off=690, len=2+13] Tue Feb 01 12:30:59 CST 
2005
                        sequence[off=705, len=2+101]
                            set[off=707, len=2+24]
                                sequence[off=709, len=2+22]
                                    object identifier[off=711, len=2+3] 2.5.4.3
                                    printable string[off=716, len=2+15] Eric H. 
Echidna
                            set[off=733, len=2+36]
                                sequence[off=735, len=2+34]
                                    object identifier[off=737, len=2+9] 
1.2.840.113549.1.9.1
                                    ia5 string[off=748, len=2+21] 
[email protected]
                            set[off=771, len=2+22]
                                sequence[off=773, len=2+20]
                                    object identifier[off=775, len=2+3] 2.5.4.10
                                    printable string[off=780, len=2+13] Bouncy 
Castle
                            set[off=795, len=2+11]
                                sequence[off=797, len=2+9]
                                    object identifier[off=799, len=2+3] 2.5.4.6
                                    printable string[off=804, len=2+2] AU
                        sequence[off=808, len=3+159]
                            sequence[off=811, len=2+13]
                                object identifier[off=813, len=2+9] 
1.2.840.113549.1.1.1
                                null[off=824, len=2+0] null
                            bit string[off=826, len=3+141] 140 bytes
                        [3][off=970, len=2+77]
                            sequence[off=972, len=2+75]
                                sequence[off=974, len=2+29]
                                    object identifier[off=976, len=2+3] 
2.5.29.14
                                    octet string[off=981, len=2+22] 22 octets
                                sequence[off=1005, len=2+31]
                                    object identifier[off=1007, len=2+3] 
2.5.29.35
                                    octet string[off=1012, len=2+24] 24 octets
                                sequence[off=1038, len=2+9]
                                    object identifier[off=1040, len=2+3] 
2.5.29.19
                                    octet string[off=1045, len=2+2] 2 octets
                    sequence[off=1049, len=2+13]
                        object identifier[off=1051, len=2+9] 
1.2.840.113549.1.1.4
                        null[off=1062, len=2+0] null
                    bit string[off=1064, len=3+129] 128 bytes
            set[off=1196, len=4+303]
                sequence[off=1200, len=4+299]
                    integer[off=1204, len=2+1] 1
                    sequence[off=1207, len=2+42]
                        sequence[off=1209, len=2+37]
                            set[off=1211, len=2+22]
                                sequence[off=1213, len=2+20]
                                    object identifier[off=1215, len=2+3] 
2.5.4.10
                                    printable string[off=1220, len=2+13] Bouncy 
Castle
                            set[off=1235, len=2+11]
                                sequence[off=1237, len=2+9]
                                    object identifier[off=1239, len=2+3] 2.5.4.6
                                    printable string[off=1244, len=2+2] AU
                        integer[off=1248, len=2+1] 2
                    sequence[off=1251, len=2+9]
                        object identifier[off=1253, len=2+5] 1.3.14.3.2.26
                        null[off=1260, len=2+0] null
                    [0][off=1262, len=2+93]
                        sequence[off=1264, len=2+24]
                            object identifier[off=1266, len=2+9] 
1.2.840.113549.1.9.3
                            set[off=1277, len=2+11]
                                object identifier[off=1279, len=2+9] 
1.2.840.113549.1.7.1
                        sequence[off=1290, len=2+28]
                            object identifier[off=1292, len=2+9] 
1.2.840.113549.1.9.5
                            set[off=1303, len=2+15]
                                utc time[off=1305, len=2+13] Sun Oct 24 
12:30:59 CST 2004
                        sequence[off=1320, len=2+35]
                            object identifier[off=1322, len=2+9] 
1.2.840.113549.1.9.4
                            set[off=1333, len=2+22]
                                octet string[off=1335, len=2+20] 20 octets
                    sequence[off=1357, len=2+13]
                        object identifier[off=1359, len=2+9] 
1.2.840.113549.1.1.1
                        null[off=1370, len=2+0] null
                    octet string[off=1372, len=3+128] 128 octets

-----Original Message-----
From: Zheng, Kai 
Sent: Wednesday, December 02, 2015 11:46 PM
To: [email protected]
Subject: RE: FW: [jira] [Created] (DIRKRB-485) Provide an ASN1 dumping tool for 
troubleshooting

The suggestions are good and I will use them. Will give the new output and 
let's see how it's like. Thanks!

-----Original Message-----
From: Emmanuel Lécharny [mailto:[email protected]] 
Sent: Wednesday, December 02, 2015 11:30 PM
To: [email protected]
Subject: Re: FW: [jira] [Created] (DIRKRB-485) Provide an ASN1 dumping tool for 
troubleshooting

Le 02/12/15 16:14, Zheng, Kai a écrit :
> Hi,
>
> Any suggestion for this? Below is my initial output, simple and short data 
> will be appended for each item, long data will be sampled.
> The offsets are only useful for debugging and will not show by default. 
> Thanks.

Sounds a very good idea. Keep the tags in hex format (48 is far less readable 
than 0x30), add the length in deimal format, and also print the values when 
it's a non constructed type. Like :

Sequence[0x30, 1509]
  OID[0x06, 7] : "1.2.4.3"
  Tag:0[0xA0, 1494]
    Sequence[0x30, 1492]
      Integer[0x02,2] : 341
...

I have used lowercased name for readability.

Reply via email to