On Mon, 1 Jun 2026 20:18:00 GMT, Weijun Wang <[email protected]> wrote:

>> This enhancement adds label display and allow drilling into an OCTET STRING 
>> or BIT STRING. The label can be used in other tools like `DerUtil`.
>> 
>> For example:
>> 
>> o $ echo 3009040730050201050500 | xxd -r -p > bin
>> # Before the change
>> o $ java ASN1Formatter.java bin
>> bin
>> 0000: 30 09                                           ; SEQUENCE [9]
>> 0002:       04 07 30 05 02 01 05 05 00                ;   OCTET STRING [7] 
>> <Unprintable>
>> # After the change
>> o $ java ASN1Formatter.java bin
>> 0000: 30 09                                           ; []: SEQUENCE [9]
>> 0002:       04 07 30 05 02 01 05 05 00                ; [0]: OCTET STRING 
>> [7] (try --drill=0)
>> o $ java ASN1Formatter.java bin --drill=0
>> 0000: 30 09                                           ; []: SEQUENCE [9]
>> 0002:       04 07                                     ; [0]: OCTET STRING [7]
>> 0004:             30 05                               ; [0c]: SEQUENCE [5]
>> 0006:                   02 01 05                      ; [0c0]: BYTE 5.
>> 0009:                            05 00                ; [0c1]: NULL
>> 
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Weijun Wang has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   number of children

test/lib-test/jdk/test/lib/hexdump/ASN1FormatterTest.java line 71:

> 69:             assertEquals(17, result.lines().filter(s -> 
> s.contains("OBJECT ID")).count(), "ObjectIDs");
> 70:             assertEquals(2, result.lines().filter(s -> 
> s.contains("UTCTIME")).count(), "UTCTIME");
> 71:             assertEquals(2, result.lines().filter(s -> s.contains("BIT 
> STRING")).count(), "BitStrings");

Old code mistakenly treated `extensions` in

TBSCertificate  ::=  SEQUENCE  {
    ...
    extensions      [3]  EXPLICIT Extensions OPTIONAL
    }

as BIT STRING because its tag number is 3.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/30685#discussion_r3336923189

Reply via email to