IPWorks Encrypt 2020 Java Edition

Questions / Feedback?

Jwe Configuration

The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.

JWE Configuration Settings

CloseInputStreamAfterProcess:   Whether to close the input stream after processing.

This setting specifies whether the stream set by SetInputStream is closed after processing the message. The default value is True.

CloseOutputStreamAfterProcess:   Whether to close the output stream after processing.

This setting specifies whether the stream set by SetOutputStream is closed after processing the message. The default value is True.

CompressionAlgorithm:   The compression algorithm to use.

This setting specifies the compression algorithm to use (if any). If set the content will be compressed using the specified algorithm. Possible values are:

  • 0 (none - default)
  • 1 (deflate)
PartyUInfo:   Information about the producer of the message.

This setting may optionally be set when Algorithm is set to an ECDH algorithm before calling Encrypt. When calling Decrypt this setting is populated and also accessible from within the RecipientInfo event. The value may be any string. To specify a base64url encoded value directly prefix the string with [b64]. For instance the following lines both set the same value:


jwe.Config("PartyUInfo=Alice");
jwe.Config("PartyUInfo=[b64]QWxpY2U="); //Equivalent to above line

PartyVInfo:   Information about the recipient of the message.

This setting may optionally be set when Algorithm is set to an ECDH algorithm before calling Encrypt. When calling Decrypt this setting is populated and also accessible from within the RecipientInfo event. The value may be any string. To specify a base64url encoded value directly prefix the string with [b64]. For instance the following lines both set the same value:


jwe.Config("PartyUInfo=Bob");
jwe.Config("PartyUInfo=[b64]Qm9i"); //Equivalent to above line

PBES2Count:   The PBKDF2 iteration count.

This setting specifies the PBDKF2 iteration count. A minimum value of 1000 is recommended. The default value is 1000.

This setting is only applicable when EncryptionAlgorithm is set to a PBES algorithm.

PBES2SaltLength:   The salt input value length.

This setting specifies the length in bytes of the salt input value, which is used as part of the PBKDF2 salt value. The default value is 16.

This setting is only applicable when EncryptionAlgorithm is set to a PBES algorithm.

RawHeader:   Holds the raw JOSE header.

This setting may be queried after calling Encrypt or Decrypt to obtain the raw JOSE header. This returns a JSON string like:

{"alg":"A128GCMKW","enc":"A256CBC-HS512","iv":"oSqGqGiA48O1uD9b","tag":"0WNBx27Z5aL5uvsd01d1Tw"}

StrictValidation:   Requires specific algorithm when decrypting.

If set to True the class will validate the that algorithms used in the JWE message match the values specified in EncryptionAlgorithm and ContentEncryptionAlgorithm. If either algorithms do not match the class throws an exception.

By default this setting is False and the algorithms are read automatically from the encrypted JWE message.

Base Configuration Settings

BuildInfo:   Information about the product's build.

When queried, this setting will return a string containing information about the product's build.

GUIAvailable:   Tells the class whether or not a message loop is available for processing events.

In a GUI-based application, long-running blocking operations may cause the application to stop responding to input until the operation returns. The class will attempt to discover whether or not the application has a message loop and, if one is discovered, it will process events in that message loop during any such blocking operation.

In some non-GUI applications an invalid message loop may be discovered that will result in errant behavior. In these cases, setting GUIAvailable to false will ensure that the class does not attempt to process external events.

LicenseInfo:   Information about the current license.

When queried, this setting will return a string containing information about the license this instance of a class is using. It will return the following information:

  • Product: The product the license is for.
  • Product Key: The key the license was generated from.
  • License Source: Where the license was found (e.g. RuntimeLicense, License File).
  • License Type: The type of license installed (e.g. Royalty Free, Single Server).
UseDaemonThreads:   Whether threads created by the class are daemon threads.

If set to True (default), when the class creates a thread the thread's Daemon property will be explicitly set to True. When set to False the class will not set the Daemon property on the created thread. The default value is True.

UseInternalSecurityAPI:   Tells the class whether or not to use the system security libraries or an internal implementation.

By default the class will use the system security libraries to perform cryptographic functions. Setting this to True tells the class to use the internal implementation instead of using the system's security API.

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks Encrypt 2020 Java Edition - Version 20.0 [Build 8155]