On Fri, 30 Oct 2026 06:12:01 GMT, Timofei Fedotov <[email protected]> wrote:
> EdDSAPublicKeyImpl(byte[]) reads the last byte of the encoded point before > invoking checkLength(). An empty subjectPublicKey BIT STRING produces a > zero-length array and causes an access at index -1. > > The error is reachable through KeyFactory.generatePublic() with an > X509EncodedKeySpec and through certificate parsing that decodes an EdDSA > SubjectPublicKeyInfo. A minimal Ed25519 SubjectPublicKeyInfo reproducer is > the DER byte sequence 300a300506032b6570030100. > > A malformed encoded key must be rejected with the normal checked key-parsing > exception rather than an array indexing exception. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). This pull request has now been integrated. Changeset: 4d514f6a Author: Timofei Fedotov <[email protected]> Committer: Artem Semenov <[email protected]> URL: https://git.openjdk.org/jdk/commit/4d514f6a08cc3d32b04eb2fc1e51d0d8d7895434 Stats: 49 lines in 2 files changed: 46 ins; 2 del; 1 mod 8396150: EdDSA public key parsing throws ArrayIndexOutOfBoundsException for an empty encoded point Reviewed-by: weijun, asemenov ------------- PR: https://git.openjdk.org/jdk/pull/33641
