Enum SupportedEllipticCurve

java.lang.Object
java.lang.Enum<SupportedEllipticCurve>
org.forgerock.json.jose.jws.SupportedEllipticCurve
All Implemented Interfaces:
Serializable, Comparable<SupportedEllipticCurve>

Enumerates all supported elliptic curve parameters for ESXXX signature formats.
  • Enum Constant Details

  • Method Details

    • values

      public static SupportedEllipticCurve[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static SupportedEllipticCurve valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • getParameters

      Returns the parameters for the given elliptic curve.
      Returns:
      the elliptic curve algorithm parameters.
    • getStandardName

      Return the name of the curve as used for the "crv" claim in a JWK.
      Returns:
      the standard JWA name for the curve.
    • getSignatureSize

      public int getSignatureSize()
      Returns the size of the signature produced by this curve in octets.
      Returns:
      the number of octets (bytes) required to hold a signature of this curve.
    • getJwsAlgorithm

      Returns the JwsAlgorithm that corresponds to this elliptic curve.
      Returns:
      the corresponding JwsAlgorithm.
    • forName

      public static SupportedEllipticCurve forName(String curveName)
      Returns the curve parameters for the given standard curve name (crv claim in a JWK).
      Parameters:
      curveName - the curve name.
      Returns:
      the curve parameters for the name.
      Throws:
      IllegalArgumentException - if the curve name is not supported.
    • forKey

      public static SupportedEllipticCurve forKey(ECKey key)
      Determines the standard curve that matches the given (private or public) key. This is done by comparing the key parameters for an exact match against one of the standard curves. All parameters much match for a match to succeed.
      Parameters:
      key - the private or public key to determine the curve for.
      Returns:
      the matching supported curve parameters.
      Throws:
      IllegalArgumentException - if the key does not match any supported curve parameters.
    • forSignature

      public static SupportedEllipticCurve forSignature(byte[] signature)
      Determines the supported curve parameters for the given signature. This is done purely based on the length of the signature and the behaviour is not specified if multiple curves could have produced this signature.
      Parameters:
      signature - the signature to match.
      Returns:
      the curve that produced this signature.
      Throws:
      IllegalArgumentException - if the signature does not match any supported curve parameters.