On Tue, 15 Feb 2022 15:28:29 GMT, Michael Osipov <d...@openjdk.java.net> wrote:
>> Weijun Wang has updated the pull request incrementally with one additional >> commit since the last revision: >> >> string at 4th place > > src/java.base/share/classes/sun/security/x509/OtherName.java line 93: > >> 91: oid = in.getOID(); >> 92: DerValue derValue1 = in.getDerValue(); >> 93: if (!derValue1.isContextSpecific((byte)0) || >> !derValue1.isConstructed()) { > > It might be purely a matter of taste, but isn't `!(isCSTag0 && isConst)` > easier to read? I have difficulty describing `!(a && b)`. There is no parentheses in human language and `!` has higher order than `&&`. I thought about completely reverse the block but that means everything after the throw will be inside a block and I don't want to move so many lines. > src/java.base/share/classes/sun/security/x509/X509CertImpl.java line 1594: > >> 1592: String v = new >> DerValue(nameValue).getAsString(); >> 1593: nameEntry.add(v == null ? nameValue : v); >> 1594: } catch (IOException ioe) { > > Attention, this catch block will hide invalid ASN.1 encoding of the other > name element from: > * sun.security.util.DerValue.init(boolean, InputStream, boolean) > * sun.security.util.DerValue.getIA5String() > > Other blocks throw: > > throw new CertificateException("Unable to parse DER value of SAN:otherName", > ioe); > > > Do you really intend to hide an encoding error int the cert from the user? Up to debate. Other blocks in `makeAltNames` throw `RuntimeException`. ------------- PR: https://git.openjdk.java.net/jdk/pull/7167