RFR: 8349946: Cipher javadoc could describe AEAD reuse better

Sebastian Stenzel duke at openjdk.org
Sat Jun 7 05:28:00 UTC 2025


On Thu, 22 May 2025 19:30:44 GMT, Koushik Muthukrishnan Thirupattur <duke at openjdk.org> wrote:

> The class documentation in javax.crypto.Cipher could better describe AEAD and reuse. The current class description example is outdated as GCM encryption does not allow resets. The doc should state that reset() may not be possible with some algorithms or providers and that an InvalidAlgorithmParameterException is thrown

Changes requested by overheadhunter at github.com (no known OpenJDK username).

src/java.base/share/classes/javax/crypto/Cipher.java line 117:

> 115:  * forgery attacks due to Key and IV uniqueness requirements.
> 116:  * An {@link IllegalStateException} will be thrown when calling {@code update}
> 117:  * or {@code doFinal} methods when a reset did not occur.

It might be helpful to describe what to do instead:

When reset is not possible, you don't need to dispose the cipher object. Instead you can call init again with a different key/nonce.

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

PR Review: https://git.openjdk.org/jdk/pull/25399#pullrequestreview-2906814350
PR Review Comment: https://git.openjdk.org/jdk/pull/25399#discussion_r2133386033


More information about the security-dev mailing list