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

Reply via email to