Package com.nimbusds.jose
Class JWEHeader
- java.lang.Object
-
- com.nimbusds.jose.Header
-
- com.nimbusds.jose.JWEHeader
-
- All Implemented Interfaces:
Serializable
@Immutable public final class JWEHeader extends Header
JSON Web Encryption (JWE) header. This class is immutable.Supports the following
registered header parameters:- alg
- enc
- epk
- zip
- jku
- jwk
- x5u
- x5t
- x5t#S256
- x5c
- kid
- typ
- cty
- crit
- apu
- apv
- p2s
- p2c
- iv
- skid
- authTag
The header may also include
custom parameters; these will be serialised and parsed along the registered ones.Example header:
{ "alg" : "RSA1_5", "enc" : "A128CBC-HS256" }- Version:
- 2021-10-01
- Author:
- Vladimir Dzhuvinov
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJWEHeader.BuilderBuilder for constructing JSON Web Encryption (JWE) headers.
-
Field Summary
-
Fields inherited from class com.nimbusds.jose.Header
MAX_HEADER_STRING_LENGTH
-
-
Constructor Summary
Constructors Constructor Description JWEHeader(Algorithm alg, EncryptionMethod enc, JOSEObjectType typ, String cty, Set<String> crit, URI jku, JWK jwk, URI x5u, Base64URL x5t, Base64URL x5t256, List<Base64> x5c, String kid, JWK epk, CompressionAlgorithm zip, Base64URL apu, Base64URL apv, Base64URL p2s, int p2c, Base64URL iv, Base64URL tag, String skid, Map<String,Object> customParams, Base64URL parsedBase64URL)Creates a new JSON Web Encryption (JWE) header.JWEHeader(JWEAlgorithm alg, EncryptionMethod enc)Creates a new minimal JSON Web Encryption (JWE) header.JWEHeader(JWEHeader jweHeader)Deep copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Base64URLgetAgreementPartyUInfo()Gets the agreement PartyUInfo (apu) parameter.Base64URLgetAgreementPartyVInfo()Gets the agreement PartyVInfo (apv) parameter.JWEAlgorithmgetAlgorithm()Gets the algorithm (alg) parameter.Base64URLgetAuthTag()Gets the authentication tag (tag) parameter.CompressionAlgorithmgetCompressionAlgorithm()Gets the compression algorithm (zip) parameter.EncryptionMethodgetEncryptionMethod()Gets the encryption method (enc) parameter.JWKgetEphemeralPublicKey()Gets the Ephemeral Public Key (epk) parameter.Set<String>getIncludedParams()Gets the names of all included parameters (registered and custom) in the header instance.Base64URLgetIV()Gets the initialisation vector (iv) parameter.JWKgetJWK()Gets the JSON Web Key (JWK) (jwk) parameter.URIgetJWKURL()Gets the JSON Web Key (JWK) Set URL (jku) parameter.StringgetKeyID()Gets the key ID (kid) parameter.intgetPBES2Count()Gets the PBES2 count (p2c) parameter.Base64URLgetPBES2Salt()Gets the PBES2 salt (p2s) parameter.static Set<String>getRegisteredParameterNames()Gets the registered parameter names for JWE headers.StringgetSenderKeyID()Gets the sender key ID (skid) parameter.List<Base64>getX509CertChain()Gets the X.509 certificate chain (x5c) parameter corresponding to the key used to sign or encrypt the JWS / JWE object.Base64URLgetX509CertSHA256Thumbprint()Gets the X.509 certificate SHA-256 thumbprint (x5t#S256) parameter.Base64URLgetX509CertThumbprint()Deprecated.URIgetX509CertURL()Gets the X.509 certificate URL (x5u) parameter.static JWEHeaderparse(Base64URL base64URL)Parses a JWE header from the specified Base64URL.static JWEHeaderparse(String jsonString)Parses a JWE header from the specified JSON object string.static JWEHeaderparse(String jsonString, Base64URL parsedBase64URL)Parses a JWE header from the specified JSON object string.static JWEHeaderparse(Map<String,Object> jsonObject)Parses a JWE header from the specified JSON object.static JWEHeaderparse(Map<String,Object> jsonObject, Base64URL parsedBase64URL)Parses a JWE header from the specified JSON object.Map<String,Object>toJSONObject()Returns a JSON object representation of the header.-
Methods inherited from class com.nimbusds.jose.Header
getContentType, getCriticalParams, getCustomParam, getCustomParams, getParsedBase64URL, getType, parseAlgorithm, toBase64URL, toString
-
-
-
-
Constructor Detail
-
JWEHeader
public JWEHeader(JWEAlgorithm alg, EncryptionMethod enc)
Creates a new minimal JSON Web Encryption (JWE) header.Note: Use
PlainHeaderto create a header with algorithmnone.- Parameters:
alg- The JWE algorithm parameter. Must not be "none" ornull.enc- The encryption method parameter. Must not benull.
-
JWEHeader
public JWEHeader(Algorithm alg, EncryptionMethod enc, JOSEObjectType typ, String cty, Set<String> crit, URI jku, JWK jwk, URI x5u, Base64URL x5t, Base64URL x5t256, List<Base64> x5c, String kid, JWK epk, CompressionAlgorithm zip, Base64URL apu, Base64URL apv, Base64URL p2s, int p2c, Base64URL iv, Base64URL tag, String skid, Map<String,Object> customParams, Base64URL parsedBase64URL)
Creates a new JSON Web Encryption (JWE) header.Note: Use
PlainHeaderto create a header with algorithmnone.- Parameters:
alg- The JWE algorithm (alg) parameter. Must not be "none" ornull.enc- The encryption method parameter. Must not benull.typ- The type (typ) parameter,nullif not specified.cty- The content type (cty) parameter,nullif not specified.crit- The names of the critical header (crit) parameters, empty set ornullif none.jku- The JSON Web Key (JWK) Set URL (jku) parameter,nullif not specified.jwk- The X.509 certificate URL (jwk) parameter,nullif not specified.x5u- The X.509 certificate URL parameter (x5u),nullif not specified.x5t- The X.509 certificate SHA-1 thumbprint (x5t) parameter,nullif not specified.x5t256- The X.509 certificate SHA-256 thumbprint (x5t#S256) parameter,nullif not specified.x5c- The X.509 certificate chain (x5c) parameter,nullif not specified.kid- The key ID (kid) parameter,nullif not specified.epk- The Ephemeral Public Key (epk) parameter,nullif not specified.zip- The compression algorithm (zip) parameter,nullif not specified.apu- The agreement PartyUInfo (apu) parameter,nullif not specified.apv- The agreement PartyVInfo (apv) parameter,nullif not specified.p2s- The PBES2 salt (p2s) parameter,nullif not specified.p2c- The PBES2 count (p2c) parameter, zero if not specified. Must not be negative.iv- The initialisation vector (iv) parameter,nullif not specified.tag- The authentication tag (tag) parameter,nullif not specified.skid- The sender key ID (skid) parameter,nullif not specified.customParams- The custom parameters, empty map ornullif none.parsedBase64URL- The parsed Base64URL,nullif the header is created from scratch.
-
-
Method Detail
-
getRegisteredParameterNames
public static Set<String> getRegisteredParameterNames()
Gets the registered parameter names for JWE headers.- Returns:
- The registered parameter names, as an unmodifiable set.
-
getAlgorithm
public JWEAlgorithm getAlgorithm()
Gets the algorithm (alg) parameter.- Overrides:
getAlgorithmin classHeader- Returns:
- The algorithm parameter.
-
getEncryptionMethod
public EncryptionMethod getEncryptionMethod()
Gets the encryption method (enc) parameter.- Returns:
- The encryption method parameter.
-
getEphemeralPublicKey
public JWK getEphemeralPublicKey()
Gets the Ephemeral Public Key (epk) parameter.- Returns:
- The Ephemeral Public Key parameter,
nullif not specified.
-
getCompressionAlgorithm
public CompressionAlgorithm getCompressionAlgorithm()
Gets the compression algorithm (zip) parameter.- Returns:
- The compression algorithm parameter,
nullif not specified.
-
getAgreementPartyUInfo
public Base64URL getAgreementPartyUInfo()
Gets the agreement PartyUInfo (apu) parameter.- Returns:
- The agreement PartyUInfo parameter,
nullif not specified.
-
getAgreementPartyVInfo
public Base64URL getAgreementPartyVInfo()
Gets the agreement PartyVInfo (apv) parameter.- Returns:
- The agreement PartyVInfo parameter,
nullif not specified.
-
getPBES2Salt
public Base64URL getPBES2Salt()
Gets the PBES2 salt (p2s) parameter.- Returns:
- The PBES2 salt parameter,
nullif not specified.
-
getPBES2Count
public int getPBES2Count()
Gets the PBES2 count (p2c) parameter.- Returns:
- The PBES2 count parameter, zero if not specified.
-
getIV
public Base64URL getIV()
Gets the initialisation vector (iv) parameter.- Returns:
- The initialisation vector,
nullif not specified.
-
getAuthTag
public Base64URL getAuthTag()
Gets the authentication tag (tag) parameter.- Returns:
- The authentication tag,
nullif not specified.
-
getSenderKeyID
public String getSenderKeyID()
Gets the sender key ID (skid) parameter.- Returns:
- The sender key ID,
nullif not specified.
-
getIncludedParams
public Set<String> getIncludedParams()
Description copied from class:HeaderGets the names of all included parameters (registered and custom) in the header instance.- Returns:
- The included parameters.
-
toJSONObject
public Map<String,Object> toJSONObject()
Description copied from class:HeaderReturns a JSON object representation of the header. All custom parameters are included if they serialise to a JSON entity and their names don't conflict with the registered ones.- Returns:
- The JSON object representation of the header.
-
parse
public static JWEHeader parse(Map<String,Object> jsonObject) throws ParseException
Parses a JWE header from the specified JSON object.- Parameters:
jsonObject- The JSON object to parse. Must not benull.- Returns:
- The JWE header.
- Throws:
ParseException- If the specified JSON object doesn't represent a valid JWE header.
-
parse
public static JWEHeader parse(Map<String,Object> jsonObject, Base64URL parsedBase64URL) throws ParseException
Parses a JWE header from the specified JSON object.- Parameters:
jsonObject- The JSON object to parse. Must not benull.parsedBase64URL- The original parsed Base64URL,nullif not applicable.- Returns:
- The JWE header.
- Throws:
ParseException- If the specified JSON object doesn't represent a valid JWE header.
-
parse
public static JWEHeader parse(String jsonString) throws ParseException
Parses a JWE header from the specified JSON object string.- Parameters:
jsonString- The JSON object string to parse. Must not benull.- Returns:
- The JWE header.
- Throws:
ParseException- If the specified JSON object string doesn't represent a valid JWE header.
-
parse
public static JWEHeader parse(String jsonString, Base64URL parsedBase64URL) throws ParseException
Parses a JWE header from the specified JSON object string.- Parameters:
jsonString- The JSON string to parse. Must not benull.parsedBase64URL- The original parsed Base64URL,nullif not applicable.- Returns:
- The JWE header.
- Throws:
ParseException- If the specified JSON object string doesn't represent a valid JWE header.
-
parse
public static JWEHeader parse(Base64URL base64URL) throws ParseException
Parses a JWE header from the specified Base64URL.- Parameters:
base64URL- The Base64URL to parse. Must not benull.- Returns:
- The JWE header.
- Throws:
ParseException- If the specified Base64URL doesn't represent a valid JWE header.
-
getJWKURL
public URI getJWKURL()
Gets the JSON Web Key (JWK) Set URL (jku) parameter.- Returns:
- The JSON Web Key (JWK) Set URL parameter,
nullif not specified.
-
getJWK
public JWK getJWK()
Gets the JSON Web Key (JWK) (jwk) parameter.- Returns:
- The JSON Web Key (JWK) parameter,
nullif not specified.
-
getX509CertURL
public URI getX509CertURL()
Gets the X.509 certificate URL (x5u) parameter.- Returns:
- The X.509 certificate URL parameter,
nullif not specified.
-
getX509CertThumbprint
@Deprecated public Base64URL getX509CertThumbprint()
Deprecated.Gets the X.509 certificate SHA-1 thumbprint (x5t) parameter.- Returns:
- The X.509 certificate SHA-1 thumbprint parameter,
nullif not specified.
-
getX509CertSHA256Thumbprint
public Base64URL getX509CertSHA256Thumbprint()
Gets the X.509 certificate SHA-256 thumbprint (x5t#S256) parameter.- Returns:
- The X.509 certificate SHA-256 thumbprint parameter,
nullif not specified.
-
getX509CertChain
public List<Base64> getX509CertChain()
Gets the X.509 certificate chain (x5c) parameter corresponding to the key used to sign or encrypt the JWS / JWE object.- Returns:
- The X.509 certificate chain parameter as a unmodifiable
list,
nullif not specified.
-
getKeyID
public String getKeyID()
Gets the key ID (kid) parameter.- Returns:
- The key ID parameter,
nullif not specified.
-
-