Package com.nimbusds.jose.jwk
Class ECKey.Builder
java.lang.Object
com.nimbusds.jose.jwk.ECKey.Builder
- Enclosing class:
- ECKey
Builder for constructing Elliptic Curve JWKs.
Example usage:
ECKey key = new ECKey.Builder(Curve.P521, x, y) .d(d) .algorithm(JWSAlgorithm.ES512) .keyID("1") .build();
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionSets the intended JOSE algorithm (alg
) for the JWK.build()
Builds a new Elliptic Curve JWK.Sets the private 'd' coordinate for the elliptic curve point.expirationTime
(Date exp) Sets the expiration time (exp
) of the JWK.Sets the issued-at time (iat
) of the JWK.Sets the ID (kid
) of the JWK.Sets the ID (kid
) of the JWK to its SHA-256 JWK thumbprint (RFC 7638).keyIDFromThumbprint
(String hashAlg) Sets the ID (kid
) of the JWK to its JWK thumbprint (RFC 7638).keyOperations
(Set<KeyOperation> ops) Sets the operations (key_ops
) of the JWK.keyRevocation
(KeyRevocation revocation) Sets the revocation (revoked
) of the JWK.Sets the underlying key store.Sets the use (use
) of the JWK.notBeforeTime
(Date nbf) Sets the not-before time (nbf
) of the JWK.privateKey
(ECPrivateKey priv) Sets the private Elliptic Curve key.privateKey
(PrivateKey priv) Sets the private EC key, typically for a key located in a PKCS#11 store that doesn't expose the private key parameters (such as a smart card or HSM).x509CertChain
(List<Base64> x5c) Sets the X.509 certificate chain (x5c
) of the JWK.x509CertSHA256Thumbprint
(Base64URL x5t256) Sets the X.509 certificate SHA-256 thumbprint (x5t#S256
) of the JWK.Deprecated.x509CertURL
(URI x5u) Sets the X.509 certificate URL (x5u
) of the JWK.
-
Constructor Details
-
Builder
Creates a new Elliptic Curve JWK builder.- Parameters:
crv
- The cryptographic curve. Must not benull
.x
- The public 'x' coordinate for the elliptic curve point. It is represented as the Base64URL encoding of the coordinate's big endian representation. Must not benull
.y
- The public 'y' coordinate for the elliptic curve point. It is represented as the Base64URL encoding of the coordinate's big endian representation. Must not benull
.
-
Builder
Creates a new Elliptic Curve JWK builder.- Parameters:
crv
- The cryptographic curve. Must not benull
.pub
- The public EC key to represent. Must not benull
.
-
Builder
Creates a new Elliptic Curve JWK builder.- Parameters:
ecJWK
- The EC JWK to start with. Must not benull
.
-
-
Method Details
-
d
Sets the private 'd' coordinate for the elliptic curve point. The alternative method isprivateKey(java.security.interfaces.ECPrivateKey)
.- Parameters:
d
- The private 'd' coordinate. It is represented as the Base64URL encoding of the coordinate's big endian representation.null
if not specified (for a public key or private key specified otherwise).- Returns:
- This builder.
-
privateKey
Sets the private Elliptic Curve key. The alternative method isd
.- Parameters:
priv
- The private EC key, used to obtain the private 'd' coordinate for the elliptic curve point.null
if not specified (for a public key or private key specified otherwise).- Returns:
- This builder.
-
privateKey
Sets the private EC key, typically for a key located in a PKCS#11 store that doesn't expose the private key parameters (such as a smart card or HSM).- Parameters:
priv
- The private EC key reference. Its algorithm must be "EC".null
if not specified (for a public key or private key specified otherwise).- Returns:
- This builder.
-
keyUse
Sets the use (use
) of the JWK.- Parameters:
use
- The key use,null
if not specified or if the key is intended for signing as well as encryption.- Returns:
- This builder.
-
keyOperations
Sets the operations (key_ops
) of the JWK.- Parameters:
ops
- The key operations,null
if not specified.- Returns:
- This builder.
-
algorithm
Sets the intended JOSE algorithm (alg
) for the JWK.- Parameters:
alg
- The intended JOSE algorithm,null
if not specified.- Returns:
- This builder.
-
keyID
Sets the ID (kid
) of the JWK. The key ID can be used to match a specific key. This can be used, for instance, to choose a key within aJWKSet
during key rollover. The key ID may also correspond to a JWS/JWEkid
header parameter value.- Parameters:
kid
- The key ID,null
if not specified.- Returns:
- This builder.
-
keyIDFromThumbprint
Sets the ID (kid
) of the JWK to its SHA-256 JWK thumbprint (RFC 7638). The key ID can be used to match a specific key. This can be used, for instance, to choose a key within aJWKSet
during key rollover. The key ID may also correspond to a JWS/JWEkid
header parameter value.- Returns:
- This builder.
- Throws:
JOSEException
- If the SHA-256 hash algorithm is not supported.
-
keyIDFromThumbprint
Sets the ID (kid
) of the JWK to its JWK thumbprint (RFC 7638). The key ID can be used to match a specific key. This can be used, for instance, to choose a key within aJWKSet
during key rollover. The key ID may also correspond to a JWS/JWEkid
header parameter value.- Parameters:
hashAlg
- The hash algorithm for the JWK thumbprint computation. Must not benull
.- Returns:
- This builder.
- Throws:
JOSEException
- If the hash algorithm is not supported.
-
x509CertURL
Sets the X.509 certificate URL (x5u
) of the JWK.- Parameters:
x5u
- The X.509 certificate URL,null
if not specified.- Returns:
- This builder.
-
x509CertThumbprint
Deprecated.Sets the X.509 certificate SHA-1 thumbprint (x5t
) of the JWK.- Parameters:
x5t
- The X.509 certificate SHA-1 thumbprint,null
if not specified.- Returns:
- This builder.
-
x509CertSHA256Thumbprint
Sets the X.509 certificate SHA-256 thumbprint (x5t#S256
) of the JWK.- Parameters:
x5t256
- The X.509 certificate SHA-256 thumbprint,null
if not specified.- Returns:
- This builder.
-
x509CertChain
Sets the X.509 certificate chain (x5c
) of the JWK.- Parameters:
x5c
- The X.509 certificate chain as a unmodifiable list,null
if not specified.- Returns:
- This builder.
-
expirationTime
Sets the expiration time (exp
) of the JWK.- Parameters:
exp
- The expiration time,null
if not specified.- Returns:
- This builder.
-
notBeforeTime
Sets the not-before time (nbf
) of the JWK.- Parameters:
nbf
- The not-before time,null
if not specified.- Returns:
- This builder.
-
issueTime
Sets the issued-at time (iat
) of the JWK.- Parameters:
iat
- The issued-at time,null
if not specified.- Returns:
- This builder.
-
keyRevocation
Sets the revocation (revoked
) of the JWK.- Parameters:
revocation
- The key revocation,null
if not specified.- Returns:
- This builder.
-
keyStore
Sets the underlying key store.- Parameters:
keyStore
- Reference to the underlying key store,null
if none.- Returns:
- This builder.
-
build
Builds a new Elliptic Curve JWK.- Returns:
- The Elliptic Curve JWK.
- Throws:
IllegalStateException
- If the JWK parameters were inconsistently specified.
-