On Thu, 21 Dec 2023 17:01:08 GMT, Weijun Wang <wei...@openjdk.org> wrote:
>> Refactored PKCS9Attribute to use a hash map instead of multiple arrays. The >> key for the hash map is an `ObjectIdentifier` and the values are a record >> `AttributeInfo` that stores the information previously contained in the >> arrays `PKCS9_VALUE_TAGS`, `VALUE_CLASSES`, and `SINGLE_VALUED`. >> >> It seems as though we should be able to get rid of constants such as >> `EMAIL_ADDRESS_OID` since they aren't heavily used with the hash map >> approach, but since the values are public it might cause compatibility >> issues. >> >> Another question is how to handle `RSA DSI`, `S/MIME`, >> `Extended-certificate`, and `Issuer Serial Number` OIDs. The prior version >> threw an error but in this refactor they are treated as an "unknown OID" and >> only throw a debug warning. This was addressed in >> https://bugs.openjdk.org/browse/JDK-8011867 but prior to this refactor the >> aforementioned OIDs were treated differently than unknown OIDs. > > src/java.base/share/classes/sun/security/pkcs/PKCS9Attribute.java line 344: > >> 342: info = oidMap.get(oid); >> 343: Class<?> clazz = (info == null) ? BYTE_ARRAY_CLASS : >> info.valueClass(); >> 344: if (clazz == null) { > > If we assign a class to `SIGNING_CERTIFICATE_OID`, this will never be null. Would `sun.security.pkcs.SigningCertificateInfo` be appropriate here? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/17132#discussion_r1440798699