Class JWE
dw.crypto
Class JWE
Object
dw.crypto.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.

Properties
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
JWE(header : JWEHeader, payload : String)
Construct a new JWE for encryption.
JWE(header : JWEHeader, payload : Bytes)
Construct a new JWE for encryption.
Method Summary
decrypt(privateKey : KeyRef) : void
Decrypt the payload of this JWE object.
encrypt(publicKey : CertificateRef) : void
Encrypt the payload of this JWE object.
getAlgorithm() : String
Get the algorithm (alg) from the header.
getEncryptionMethod() : String
Get the encryption method (enc) from the header.
getHeaderMap() : Map
Get a copy of the JWE headers as a Map.
getKeyID() : String
Get the key id (kid) from the header.
getPayload() : String
Get the decrypted payload.
static parse(jwe : String) : JWE
Parse a JSON Web Encryption (JWE) object from its compact serialization format.
serialize() : String
Get this JWE in compact serialization form.
Constructor Detail
JWE
public 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
public 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 Detail
decrypt
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
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
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.