RFR: 8249783: Simplify DerValue and DerInputStream [v2]

Weijun Wang weijun at openjdk.java.net
Sat Sep 26 01:00:21 UTC 2020


On Fri, 25 Sep 2020 02:47:59 GMT, Valerie Peng <valeriep at openjdk.org> wrote:

>> src/java.base/share/classes/sun/security/util/DerValue.java line 638:
>> 
>>> 636:         }
>>> 637:         if (end == start) {
>>> 638:             throw new IOException("No padding");
>> 
>> Well, I find the original error message is clearer: Invalid encoding: zero length bit string. Just the "No padding" may
>> be somewhat unclear since no padding is needed when it's multiple of 8. Or, maybe something like
>> "DerValue.getBitString, empty value".
>
> It also seems strange that it only checks that length !=0. The spec of BitString seems to suggest the length must
> be >=2 where the first byte is the number of padding bits. It seems that the right check should be (end - start) > 1?

I'll look into it. If there's anything wrong, will fix and add a regression test. What if there is zero bit?

And yes, the old exception message is better. Don't know why I modified it.

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

PR: https://git.openjdk.java.net/jdk/pull/232



More information about the security-dev mailing list