Class EcJWK


public class EcJWK extends JWK
This class implements an Elliptical Curve Json Web Key storage and manipulation class.
  • Constructor Details

    • EcJWK

      public EcJWK(ECPublicKey publicKey, KeyUse use, String kid)
      Creates a public EcJWK.
      Parameters:
      publicKey - The public key for the JWK
      use - The value of the use JWK parameter
      kid - The key id of the JWK
    • EcJWK

      public EcJWK(ECPublicKey publicKey, ECPrivateKey privateKey, KeyUse use, String kid)
      Creates a public and private EcJWK.
      Parameters:
      publicKey - The public key for the JWK
      privateKey - The private key for the JWK
      use - The value of the use JWK parameter
      kid - The key id of the JWK
    • EcJWK

      public EcJWK(KeyUse use, String alg, String kid, String x, String y, String curve, String x5u, String x5t, List<String> x5c)
      Creates a public EcJWK.
      Parameters:
      use - The value of the use JWK parameter
      alg - The value of the alg JWK parameter
      kid - The key id of the JWK
      x - The unsigned big-endian base64 url encoding of the elliptical curve point x coordinate
      y - The unsigned big-endian base64 url encoding of the elliptical curve point y coordinate
      curve - The known curve to use. For example "NIST P-256".
      x5u - the x509 url for the key
      x5t - the x509 thumbnail for the key
      x5c - the x509 chain as a list of Base64 encoded strings
    • EcJWK

      public EcJWK(KeyUse use, String alg, String kid, String x, String y, String d, String curve, String x5u, String x5t, List<String> x5c)
      Creates a public and private EcJWK.
      Parameters:
      use - The value of the use JWK parameter
      alg - The value of the alg JWK parameter
      kid - The key id of the JWK
      x - The unsigned big-endian base64 url encoding of the elliptical curve point x coordinate
      y - The unsigned big-endian base64 url encoding of the elliptical curve point y coordinate
      d - The unsigned big-endian base64 url encoding of the d value for the elliptical curve private key
      curve - The known curve to use. For example "NIST P-256".
      x5u - the x509 url for the key
      x5t - the x509 thumbnail for the key
      x5c - the x509 chain as a list of Base64 encoded strings
  • Method Details

    • getX

      public String getX()
      Gets the unsigned big-endian base64 url encoding of the elliptical curve point x coordinate.
      Returns:
      unsigned big-endian base64 url encoding of the elliptical curve point x coordinate
    • getY

      public String getY()
      Gets the unsigned big-endian base64 url encoding of the elliptical curve point y coordinate.
      Returns:
      the unsigned big-endian base64 url encoding of the elliptical curve point y coordinate
    • getD

      public String getD()
      Gets the unsigned big-endian base64 url encoding of the d value for the elliptical curve private key.
      Returns:
      the unsigned big-endian base64 url encoding of the d value for the elliptical curve private key
    • getCurve

      public String getCurve()
      Gets the known curve to use. For example "NIST P-256".
      Returns:
      the known curve of the JWK
    • parse

      public static EcJWK parse(String json)
      Parses a JWK from a string json object.
      Parameters:
      json - string json object
      Returns:
      a EcJWK object
    • parse

      public static EcJWK parse(JsonValue json)
      Parses a JWK from a JsonValue json object.
      Parameters:
      json - JsonValue json object
      Returns:
      a EcJWK object
    • toJsonString

      public String toJsonString()
      Prints the JWK as a String json object.
      Overrides:
      toJsonString in class JWK
      Returns:
      a json string object
    • toECPublicKey

      Converts the JWK to a ECPublicKey.
      Returns:
      an ECPublicKey
    • toECPrivateKey

      Converts the JWK to a ECPrivateKey.
      Returns:
      an ECPrivateKey
    • toKeyPair

      public KeyPair toKeyPair()
      Converts the JWK to a KeyPair.
      Returns:
      an KeyPair
    • decodeCoordinate

      public static BigInteger decodeCoordinate(String encodedCoordinate)
      Decode the unsigned big-endian base64 url encoding of an elliptical curve point.
      Parameters:
      encodedCoordinate - the unsigned big-endian base64 url encoding of a the elliptical curve point
      Returns:
      the elliptical curve point
    • encodeCoordinate

      public static String encodeCoordinate(int fieldSize, BigInteger coordinate)
      Base64url encode the unsigned big-endian representation of an elliptical curve point.
      Parameters:
      fieldSize - the EC field size in bits.
      coordinate - the elliptical curve point
      Returns:
      the unsigned big-endian base64 url encoding of the elliptical curve point