Package com.nimbusds.jose
Class JWEHeader.Builder
- java.lang.Object
-
- com.nimbusds.jose.JWEHeader.Builder
-
- Enclosing class:
- JWEHeader
public static class JWEHeader.Builder extends Object
Builder for constructing JSON Web Encryption (JWE) headers.Example usage:
JWEHeader header = new JWEHeader.Builder(JWEAlgorithm.RSA1_5, EncryptionMethod.A128GCM) .contentType("text/plain") .customParam("exp", new Date().getTime()) .build();
-
-
Constructor Summary
Constructors Constructor Description Builder(JWEAlgorithm alg, EncryptionMethod enc)
Creates a new JWE header builder.Builder(JWEHeader jweHeader)
Creates a new JWE header builder with the parameters from the specified header.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description JWEHeader.Builder
agreementPartyUInfo(Base64URL apu)
Sets the agreement PartyUInfo (apu
) parameter.JWEHeader.Builder
agreementPartyVInfo(Base64URL apv)
Sets the agreement PartyVInfo (apv
) parameter.JWEHeader.Builder
authTag(Base64URL tag)
Sets the authentication tag (tag
) parameter.JWEHeader
build()
Builds a new JWE header.JWEHeader.Builder
compressionAlgorithm(CompressionAlgorithm zip)
Sets the compression algorithm (zip
) parameter.JWEHeader.Builder
contentType(String cty)
Sets the content type (cty
) parameter.JWEHeader.Builder
criticalParams(Set<String> crit)
Sets the critical header parameters (crit
) parameter.JWEHeader.Builder
customParam(String name, Object value)
Sets a custom (non-registered) parameter.JWEHeader.Builder
customParams(Map<String,Object> customParameters)
Sets the custom (non-registered) parameters.JWEHeader.Builder
ephemeralPublicKey(JWK epk)
Sets the Ephemeral Public Key (epk
) parameter.JWEHeader.Builder
iv(Base64URL iv)
Sets the initialisation vector (iv
) parameter.JWEHeader.Builder
jwk(JWK jwk)
Sets the public JSON Web Key (JWK) (jwk
) parameter.JWEHeader.Builder
jwkURL(URI jku)
Sets the public JSON Web Key (JWK) Set URL (jku
) parameter.JWEHeader.Builder
keyID(String kid)
Sets the key ID (kid
) parameter.JWEHeader.Builder
parsedBase64URL(Base64URL base64URL)
Sets the parsed Base64URL.JWEHeader.Builder
pbes2Count(int p2c)
Sets the PBES2 count (p2c
) parameter.JWEHeader.Builder
pbes2Salt(Base64URL p2s)
Sets the PBES2 salt (p2s
) parameter.JWEHeader.Builder
senderKeyID(String skid)
Sets the sender key ID (skid
) parameter.JWEHeader.Builder
type(JOSEObjectType typ)
Sets the type (typ
) parameter.JWEHeader.Builder
x509CertChain(List<Base64> x5c)
Sets the X.509 certificate chain parameter (x5c
) corresponding to the key used to sign the JWS object.JWEHeader.Builder
x509CertSHA256Thumbprint(Base64URL x5t256)
Sets the X.509 certificate SHA-256 thumbprint (x5t#s256
) parameter.JWEHeader.Builder
x509CertThumbprint(Base64URL x5t)
Deprecated.JWEHeader.Builder
x509CertURL(URI x5u)
Sets the X.509 certificate URL (x5u
) parameter.
-
-
-
Constructor Detail
-
Builder
public Builder(JWEAlgorithm alg, EncryptionMethod enc)
Creates a new JWE header builder.- Parameters:
alg
- The JWE algorithm (alg
) parameter. Must not be "none" ornull
.enc
- The encryption method. Must not benull
.
-
-
Method Detail
-
type
public JWEHeader.Builder type(JOSEObjectType typ)
Sets the type (typ
) parameter.- Parameters:
typ
- The type parameter,null
if not specified.- Returns:
- This builder.
-
contentType
public JWEHeader.Builder contentType(String cty)
Sets the content type (cty
) parameter.- Parameters:
cty
- The content type parameter,null
if not specified.- Returns:
- This builder.
-
criticalParams
public JWEHeader.Builder criticalParams(Set<String> crit)
Sets the critical header parameters (crit
) parameter.- Parameters:
crit
- The names of the critical header parameters, empty set ornull
if none.- Returns:
- This builder.
-
jwkURL
public JWEHeader.Builder jwkURL(URI jku)
Sets the public JSON Web Key (JWK) Set URL (jku
) parameter.- Parameters:
jku
- The public JSON Web Key (JWK) Set URL parameter,null
if not specified.- Returns:
- This builder.
-
jwk
public JWEHeader.Builder jwk(JWK jwk)
Sets the public JSON Web Key (JWK) (jwk
) parameter.- Parameters:
jwk
- The public JSON Web Key (JWK) (jwk
) parameter,null
if not specified.- Returns:
- This builder.
-
x509CertURL
public JWEHeader.Builder x509CertURL(URI x5u)
Sets the X.509 certificate URL (x5u
) parameter.- Parameters:
x5u
- The X.509 certificate URL parameter,null
if not specified.- Returns:
- This builder.
-
x509CertThumbprint
@Deprecated public JWEHeader.Builder x509CertThumbprint(Base64URL x5t)
Deprecated.Sets the X.509 certificate SHA-1 thumbprint (x5t
) parameter.- Parameters:
x5t
- The X.509 certificate SHA-1 thumbprint parameter,null
if not specified.- Returns:
- This builder.
-
x509CertSHA256Thumbprint
public JWEHeader.Builder x509CertSHA256Thumbprint(Base64URL x5t256)
Sets the X.509 certificate SHA-256 thumbprint (x5t#s256
) parameter.- Parameters:
x5t256
- The X.509 certificate SHA-256 thumbprint parameter,null
if not specified.- Returns:
- This builder.
-
x509CertChain
public JWEHeader.Builder x509CertChain(List<Base64> x5c)
Sets the X.509 certificate chain parameter (x5c
) corresponding to the key used to sign the JWS object.- Parameters:
x5c
- The X.509 certificate chain parameter,null
if not specified.- Returns:
- This builder.
-
keyID
public JWEHeader.Builder keyID(String kid)
Sets the key ID (kid
) parameter.- Parameters:
kid
- The key ID parameter,null
if not specified.- Returns:
- This builder.
-
ephemeralPublicKey
public JWEHeader.Builder ephemeralPublicKey(JWK epk)
Sets the Ephemeral Public Key (epk
) parameter.- Parameters:
epk
- The Ephemeral Public Key parameter,null
if not specified.- Returns:
- This builder.
-
compressionAlgorithm
public JWEHeader.Builder compressionAlgorithm(CompressionAlgorithm zip)
Sets the compression algorithm (zip
) parameter.- Parameters:
zip
- The compression algorithm parameter,null
if not specified.- Returns:
- This builder.
-
agreementPartyUInfo
public JWEHeader.Builder agreementPartyUInfo(Base64URL apu)
Sets the agreement PartyUInfo (apu
) parameter.- Parameters:
apu
- The agreement PartyUInfo parameter,null
if not specified.- Returns:
- This builder.
-
agreementPartyVInfo
public JWEHeader.Builder agreementPartyVInfo(Base64URL apv)
Sets the agreement PartyVInfo (apv
) parameter.- Parameters:
apv
- The agreement PartyVInfo parameter,null
if not specified.- Returns:
- This builder.
-
pbes2Salt
public JWEHeader.Builder pbes2Salt(Base64URL p2s)
Sets the PBES2 salt (p2s
) parameter.- Parameters:
p2s
- The PBES2 salt parameter,null
if not specified.- Returns:
- This builder.
-
pbes2Count
public JWEHeader.Builder pbes2Count(int p2c)
Sets the PBES2 count (p2c
) parameter.- Parameters:
p2c
- The PBES2 count parameter, zero if not specified. Must not be negative.- Returns:
- This builder.
-
iv
public JWEHeader.Builder iv(Base64URL iv)
Sets the initialisation vector (iv
) parameter.- Parameters:
iv
- The initialisation vector,null
if not specified.- Returns:
- This builder.
-
authTag
public JWEHeader.Builder authTag(Base64URL tag)
Sets the authentication tag (tag
) parameter.- Parameters:
tag
- The authentication tag,null
if not specified.- Returns:
- This builder.
-
senderKeyID
public JWEHeader.Builder senderKeyID(String skid)
Sets the sender key ID (skid
) parameter.- Parameters:
skid
- The sender Key ID parameter,null
if not specified.- Returns:
- This builder.
-
customParam
public JWEHeader.Builder customParam(String name, Object value)
Sets a custom (non-registered) parameter.- Parameters:
name
- The name of the custom parameter. Must not match a registered parameter name and must not benull
.value
- The value of the custom parameter, should map to a valid JSON entity,null
if not specified.- Returns:
- This builder.
- Throws:
IllegalArgumentException
- If the specified parameter name matches a registered parameter name.
-
customParams
public JWEHeader.Builder customParams(Map<String,Object> customParameters)
Sets the custom (non-registered) parameters. The values must be serialisable to a JSON entity, otherwise will be ignored.- Parameters:
customParameters
- The custom parameters, empty map ornull
if none.- Returns:
- This builder.
-
parsedBase64URL
public JWEHeader.Builder parsedBase64URL(Base64URL base64URL)
Sets the parsed Base64URL.- Parameters:
base64URL
- The parsed Base64URL,null
if the header is created from scratch.- Returns:
- This builder.
-
-