Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8350440

Incomplete @throws javadoc for various javax.crypto.spec classes

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 25
    • security-libs
    • None
    • minimal
    • Minor update to the javadoc for AIOOBE in four classes for documenting existing behavior.
    • Java API
    • SE

      Summary

      AIOOBE needs to be documented in four javax.crypto.spec classes.

      Problem

      javadoc out of sync with code regarding AIOOBE.

      Solution

      Document AIOOBE in IvParameterSpec, RC2ParameterSpec, RC5ParameterSpec, and SecretKeySpec.

      Minor clarification needed for RC2ParameterSpec for IllegalArgumentException.

      Specification

      a/src/java.base/share/classes/javax/crypto/spec/IvParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/IvParameterSpec.java
      index 6d7fa142c68..a1c7102e8a4 100644
      --- a/src/java.base/share/classes/javax/crypto/spec/IvParameterSpec.java
      +++ b/src/java.base/share/classes/javax/crypto/spec/IvParameterSpec.java
      @@ -47,30 +47,30 @@ public class IvParameterSpec implements AlgorithmParameterSpec {
      -     * @throws ArrayIndexOutOfBoundsException is thrown if <code>offset</code>
      -     * or <code>len</code> index bytes outside the <code>iv</code>.
      +     * @throws ArrayIndexOutOfBoundsException if {@code offset}
      +     * or {@code len} are negative.
            */
           public IvParameterSpec(byte[] iv, int offset, int len) {
               if (iv == null) {
      
      a/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java
      index 3c2e5a57da6..cb89aa17565 100644
      --- a/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java
      +++ b/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java
      @@ -91,7 +91,10 @@ public RC2ParameterSpec(int effectiveKeyBits, byte[] iv) {
            * @param offset the offset in {@code iv} where the 8-byte IV
            * starts.
      -     * @exception IllegalArgumentException if {@code iv} is null.
      +     * @exception IllegalArgumentException if {@code iv} is {@code null}
      +     * or {@code iv.length - offset < 8}.
      +     * @exception ArrayIndexOutOfBoundsException if
      +     * {@code offset} is negative.
            */
           public RC2ParameterSpec(int effectiveKeyBits, byte[] iv, int offset) {
               this.effectiveKeyBits = effectiveKeyBits;
      
      a/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java
      index 86d128afbf8..644433f3373 100644
      --- a/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java
      +++ b/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java
      @@ -106,9 +106,9 @@ public RC5ParameterSpec(int version, int rounds, int wordSize, byte[] iv) {
            * @param offset the offset in {@code iv} where the IV starts.
      +     * @exception ArrayIndexOutOfBoundsException if {@code offset} is negative.
            */
           public RC5ParameterSpec(int version, int rounds, int wordSize,
                                   byte[] iv, int offset) {
      
      a/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java b/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java
      index e51b1471a8c..b8b4ddb8acf 100644
      --- a/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java
      +++ b/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java
      @@ -142,12 +142,11 @@ public SecretKeySpec(byte[] key, String algorithm) {
             * i.e. {@code key.length-offset<len}.
      -     * @exception ArrayIndexOutOfBoundsException is thrown if
      -     * <code>offset</code> or <code>len</code> index bytes outside the
      -     * <code>key</code>.
      +     * @exception ArrayIndexOutOfBoundsException if
      +     * {@code offset} or {@code len} are negative.
            *
            * @spec security/standard-names.html Java Security Standard Algorithm Names
            */

            mpowers Mark Powers
            valeriep Valerie Peng
            Valerie Peng
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: