Class JWE

This class represents a JSON Web Encryption (JWE) object.

Note: this class handles sensitive security-related data. Pay special attention to PCI DSS v3 requirements 2, 4, and 12.

Property Summary 

PropertyDescription
algorithm: String (read-only)Get the algorithm (alg) from the header.
encryptionMethod: String (read-only)Get the encryption method (enc) from the header.
headerMap: Map (read-only)Get a copy of the JWE headers as a Map.
keyID: String (read-only)Get the key id (kid) from the header.
payload: String (read-only)Get the decrypted payload.

Constructor Summary 

ConstructorDescription
JWE(JWEHeader, String)Construct a new JWE for encryption.
JWE(JWEHeader, Bytes)Construct a new JWE for encryption.

Method Summary 

MethodDescription
decrypt(KeyRef)Decrypt the payload of this JWE object.
encrypt(CertificateRef)Encrypt the payload of this JWE object.
getAlgorithm()Get the algorithm (alg) from the header.
getEncryptionMethod()Get the encryption method (enc) from the header.
getHeaderMap()Get a copy of the JWE headers as a Map.
getKeyID()Get the key id (kid) from the header.
getPayload()Get the decrypted payload.
static parse(String)Parse a JSON Web Encryption (JWE) object from its compact serialization format.
serialize()Get this JWE in compact serialization form.

Methods inherited from class Object 

assign, create, create, defineProperties, defineProperty, entries, freeze, fromEntries, getOwnPropertyDescriptor, getOwnPropertyNames, getOwnPropertySymbols, getPrototypeOf, hasOwnProperty, is, isExtensible, isFrozen, isPrototypeOf, isSealed, keys, preventExtensions, propertyIsEnumerable, seal, setPrototypeOf, toLocaleString, toString, valueOf, values

Property Details 

algorithm 

algorithm: String (read-only)

Get the algorithm (alg) from the header.


encryptionMethod 

encryptionMethod: String (read-only)

Get the encryption method (enc) from the header.


headerMap 

headerMap: Map (read-only)

Get a copy of the JWE headers as a Map.


keyID 

keyID: String (read-only)

Get the key id (kid) from the header.


payload 

payload: String (read-only)

Get the decrypted payload.


Constructor Details 

JWE(JWEHeader, String) 

JWE(header: JWEHeader, payload: String)

Construct a new JWE for encryption.

Parameters:

  • header - JWE header. This must include a valid algorithm (alg) and encryption method (enc). See decrypt(KeyRef) for a list of supported algorithms.
  • payload - Content that will be encrypted.

JWE(JWEHeader, Bytes) 

JWE(header: JWEHeader, payload: Bytes)

Construct a new JWE for encryption.

Parameters:

  • header - JWE header. This must include a valid algorithm (alg) and encryption method (enc). See decrypt(KeyRef) for a list of supported algorithms.
  • payload - Content that will be encrypted.

Method Details 

decrypt(KeyRef) 

decrypt(privateKey: KeyRef): void

Decrypt the payload of this JWE object.

Elliptic Curve (EC) and RSA keys are both supported.

Supported EC key management algorithms:

  • ECDH-ES
  • ECDH-ES+A128KW
  • ECDH-ES+A192KW
  • ECDH-ES+A256KW

Supported EC curves:

  • P-256
  • P-384
  • P-521

Supported RSA key management algorithms:

  • RSA-OAEP-256
  • RSA-OAEP-384
  • RSA-OAEP-512

Supported content encryption algorithms:

  • A128CBC-HS256
  • A128CBC-HS384
  • A128CBC-HS512
  • A128GCM
  • A192GCM
  • A256GCM

Parameters:

  • privateKey - Reference to private RSA or EC key to use for decryption.

encrypt(CertificateRef) 

encrypt(publicKey: CertificateRef): void

Encrypt the payload of this JWE object.

Elliptic Curve (EC) and RSA keys are both supported.

See decrypt(KeyRef) for the list of supported algorithms and encryption methods.

Parameters:

  • publicKey - Reference to public RSA or EC key to use for decryption.

getAlgorithm() 

getAlgorithm(): String

Get the algorithm (alg) from the header.

Returns:

  • Value of the algorithm or null if missing.

getEncryptionMethod() 

getEncryptionMethod(): String

Get the encryption method (enc) from the header.

Returns:

  • Value of the encryption method or null if missing.

getHeaderMap() 

getHeaderMap(): Map

Get a copy of the JWE headers as a Map.

Returns:

  • Copy of the JWE headers.

getKeyID() 

getKeyID(): String

Get the key id (kid) from the header.

Returns:

  • Value of the key id or null if missing.

getPayload() 

getPayload(): String

Get the decrypted payload.

Returns:

  • Payload or null if the payload is encrypted.

parse(String) 

static parse(jwe: String): JWE

Parse a JSON Web Encryption (JWE) object from its compact serialization format.

Parameters:

  • jwe - JWE in compact serialization format.

Returns:

  • JWE object.

serialize() 

serialize(): String

Get this JWE in compact serialization form.

Returns:

  • Compact serialized object.