On 1/24/2022 2:23 PM, Weijun Wang wrote:
On Fri, 14 Jan 2022 11:18:23 GMT, Masanori Yano <my...@openjdk.org> wrote:

Could you please review the JDK-8255739 bug fix?

I think sun.security.x509.SubjectAlternativeNameExtension() should throw an 
exception for incorrect SubjectAlternativeNames instead of returning the 
substituted characters, which is explained in the description of BugDB.

I modified DerValue.readStringInternal() not to read incorrect 
SubjectAlternativeNames and throw an IOException. 
sun.security.x509.X509CertInfo.parse() catch the IOExcepton and ignore it if 
SAN is a non-ciritical extension like the behavior of the IOException in 
readStringInternal(). So I added a test with -Djava.security.debug=x509 to 
confirm that.
Masanori Yano has updated the pull request incrementally with one additional 
commit since the last revision:

   8255739: x509Certificate returns � for invalid subjectAlternativeNames
Hi Mike, we don't support an OAEP key (i.e. RSA keys with OAEP parameters). If 
you want OAEP encryption, just use a plain RSA key and pass an 
OAEPParameterSpec to the RSA Cipher's init method.

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

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

Hi -

The RSA key just used a different AlgorithmIdentifier from the normal parameterless rsaEncryption AlgorithmIdentifier.   This issue basically: https://github.com/openssl/openssl/issues/7907. The TCG originally specified that the EK certificate contained the TPM's endorsement public key would be identified by the  that any endorsement key public key would be identified with the RSAES-OAEP  { pkcs-1 7 } object identifier instead of the rsaEncryption  {pkcs-1 1 } OID since the key was only supposed to be used for decrypting a credential encrypted under OAEP.  e.g. the cert contained this sequence for the SubjectPublicKeyInfo:

  SEQUENCE {
 175   34:       SEQUENCE {
 177    9:         OBJECT IDENTIFIER rsaOAEP (1 2 840 113549 1 1 7)
 188   21:         SEQUENCE {
 190   19:           [2] {
 192   17:             SEQUENCE {
 194    9:               OBJECT IDENTIFIER
         :                 rsaOAEP-pSpecified (1 2 840 113549 1 1 9)
 205    4:               OCTET STRING 'TCPA'
         :               }
         :             }
         :           }
         :         }
 211  271:       BIT STRING, encapsulates {
 216  266:         SEQUENCE {
 220  257:           INTEGER
         :             00 8A 80 D6 D1 A9 AD 54 92 A4 D2 AA F1 8A C8 D3
         :             48 12 2E 17 E4 2C FC 75 CF 57 A3 E4 33 EC C8 FD
         :             7D 2D 5E B4 13 F9 5D A9 45 51 E1 F1 22 F9 3C DA
         :             39 69 AB 8D 85 72 74 D9 97 9C A2 6E D1 BE 9B 93
         :             0A 83 1A 9D 2F 30 AA B1 F8 B8 89 04 34 1B 2C 72
         :             31 BF 1F 67 44 79 B9 9E 35 A8 99 06 56 7B 92 28
         :             C4 21 B9 90 7E C8 41 09 F5 88 C2 23 28 DE 25 CA
         :             AF C2 2B 2E 61 DB 8B 17 83 BB 74 9A 4F A8 D4 A3
         :                     [ Another 129 bytes skipped ]
 481    3:           INTEGER 65537
         :           }
         :         }
         :       }

Except for the weird AlgorithmIdentifier this is a bog standard RSA public key.

I don't know that its worth the time to fix this - it's already been deprecated by the TCG and I haven't seen an endorsement certificate with this particular encoding in a long while.  The certificate this key is from was issued 26 April 2012 and - for some strange reason - expires the same date this year.

Later, Mike


Reply via email to