RFR: 8325448: Hybrid Public Key Encryption [v43]

Anthony Scarpino ascarpino at openjdk.org
Mon Sep 15 22:46:17 UTC 2025


On Fri, 12 Sep 2025 23:39:37 GMT, Weijun Wang <weijun at openjdk.org> wrote:

>> src/java.base/share/classes/javax/crypto/spec/HPKEParameterSpec.java line 317:
>> 
>>> 315:             throw new IllegalArgumentException("psk_id is empty");
>>> 316:         }
>>> 317:         if ("RAW".equalsIgnoreCase(psk.getFormat())) {
>> 
>> What happens if the format is not RAW?  Is that allowed or should it be an IAE?
>> If `psk` is an  16 byte AES Secret key is that checked somewhere or at all relevant?
>
> I just meant if it's not "RAW" (maybe `null`?) then I have no way to check its length. A 16 byte AES will be rejected if it has an encoding which is almost always of "RAW" format.
> 
> Or, did you confuse `getAlgorithm` and `getFormat`?

I know it's `getFormat`.  Since there is a length check for "RAW", I was wondering why "PKCS#8", didn't use `psk.getEncoded().length` to checked.  If you are handling the "RAW" case in this method and later on a short key is checked, that is fine.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18411#discussion_r2350270555


More information about the security-dev mailing list