OpenPGP 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.OpenPGP Configuration Settings
AllowEmptyInput: Whether to allow empty files for input.This setting controls whether the class allows empty input when processing. When True, the class will process 0 byte files specified by InputFile, or 0 byte messages specified by InputMessage. The default value is False. | |||||||||
AllowOldPacketType: Whether to allow the older encrypted packet type.By default the class will only encrypt data using the newer and more secure integrity protected data packet type.
Old implementations such as PGP 6.5.8 may require the older less secure data packet type.
When set to True the class will read the features from the recipient key to determine if the older packet type is required. If the key does require the old packet type, then the older packet type will be used. If the key does not require the old packet type, then the new integrity protected packet type will still be used. By default this value is False. This means under no conditions is the older less secure packet type used. The newer integrity protected packet type is always used. Only enable this setting if you have a requirement to do so. | |||||||||
AutoSelectAlgorithms: Whether to automatically select algorithms when encrypting or signing.When set to True the class will select the preferred algorithms specified by the key.
The default value is False.
If True, when Encrypt is called the class will read the preferred encryption algorithm and compression method from the key specified in the RecipientKey* properties. If multiple keys are specified the preferred encryption algorithm and compression method from the last key is used. The EncryptingAlgorithm and CompressionMethod properties are ignored. If True, when Sign is called the class will read the preferred signing algorithm and compression method from the private key specified in the Key* properties. If multiple keys are specified the preferred signing algorithm and compression method from the last key is used. The SigningAlgorithm and CompressionMethod properties are ignored. | |||||||||
AutoSelectCipherAlgorithm: Whether to automatically select the cipher algorithm when encrypting.This setting may be used to control whether the cipher algorithm is automatically selected. This is similar
to AutoSelectAlgorithms but only applies to the cipher algorithm.
Setting AutoSelectAlgorithms resets this value to match the value in AutoSelectAlgorithms. Set this after setting AutoSelectAlgorithms to be sure the intended value is used. | |||||||||
AutoSelectMACAlgorithm: Whether to automatically select the MAC algorithm when signing.This setting may be used to control whether the MAC algorithm is automatically selected. This is similar
to AutoSelectAlgorithms but only applies to the MAC algorithm.
Setting AutoSelectAlgorithms resets this value to match the value in AutoSelectAlgorithms. Set this after setting AutoSelectAlgorithms to be sure the intended value is used. | |||||||||
AutoSelectCompressionAlgorithm: Whether to automatically select the compression algorithm.This setting may be used to control whether the compression algorithm is automatically selected. This is similar
to AutoSelectAlgorithms but only applies to the compression algorithm.
Setting AutoSelectAlgorithms resets this value to match the value in AutoSelectAlgorithms. Set this after setting AutoSelectAlgorithms to be sure the intended value is used. | |||||||||
CompressionLevel: The Zip or Zlib compression level.This setting specifies the level of compression to be used: possible values are 1 to 6. Higher values will cause the class to compress better; lower values will cause the class to compress faster. The default value is 4. Note: This setting is only applicable when CompressionMethod is set to "zlib" or "zip". | |||||||||
DetachedSignatureData: The detached signature.This setting is used to specify the detached signature before calling VerifySignature.
The message data should be specified normally and this setting should be set to the detached signature
data. Both hex-string and OpenPGP ASCII-armored message formats are allowed.
Hex-encoded data should be provided as a string like so:
89011C04000102000605025100459B000A0910E2... | |||||||||
FileName: The original name of the encrypted file.When encrypting, this configuration setting can be used to specify the original name of the encrypted data. When specifying an InputFile to encrypt from, this is included automatically in the encrypted packet. After decrypting, this will contain the file name of the original encrypted file. | |||||||||
PGPZipDir: The directory used when creating or extracting a PGP zip file.A PGP zip file is a Tar archive that is encrypted. It is commonly used by utilities to protect multiple
files in one OpenPGP message. The class supports creating and extracting these types of files.
| |||||||||
RequireValidSignature: Specifies if an invalid signature is considered an error condition.By default, if the signature is not valid the class fails with an error. This setting may be set to False to disable this requirement. When False, the Status parameter of the VerificationStatus event should be checked to determine the result of the operation. The default value is True. | |||||||||
SplitHeaders: Controls whether ASCII Armor headers are split or not.By default, when headers are specified via MessageHeaders, the class will split headers over a certain length onto multiple lines. This is done to avoid potential errors during transport of the message. If false, the headers will be on one line regardless of length. The default value is True. | |||||||||
SymmetricPassphrase: The password used for symmetric encryption or decryption.This setting specifies the passphrase when using symmetric encryption. If a value is provided, symmetric encryption/decryption will be attempted. In this case no keys are used for either encryption or decryption. Only Encrypt and Decrypt are valid operations when a value is set. Sign, SignAndEncrypt, VerifySignature, and DecryptAndVerifySignature are not valid operations when using this option. | |||||||||
PublicKeyringFile: The file name of the public keyring file.This specifies the name of the public keyring file. The default value is "pubring.gpg". This may be set to a file name only, or a full path including the file name. | |||||||||
SecretKeyringFile: The file name of the secret keyring file.This specifies the name of the secret keyring file. The default value is "secring.gpg". This may be set to a file name only, or a full path including the file name. | |||||||||
AutoSelectDSASignatureHashAlgorithm: Whether or not to select a suitable signature hash algorithm automatically.When set to true the class will automatically select an appropriate hash algorithm for DSA keys. DSA requires that the hash be 160 bits or larger. This means the MD5 hash algorithm is not a valid option. The default value is True. | |||||||||
VersionHeader: The Version header value in the ASCII armored OpenPGP message.This setting specifies the Version header value included in the ASCII armored OpenPGP message.
This may be set before calling Encrypt, Sign, or SignAndEncrypt. The default
value is "IPWorks! OpenPGP v9.0".
This setting will be populated after calling Decrypt, VerifySignature, or DecryptAndVerifySignature. | |||||||||
LogLevel: Specifies the level of detail that is logged.This setting controls the level of detail that is logged through the Status event. Possible values are:
| |||||||||
ProgressEventThreshold: The amount of data in bytes to process before firing the progress event.When encrypting or decrypting, the Progress event is fired as data is processed by the class. When this setting is specified, the event will only fire after processing at least the specified number of bytes. The default value is 0. | |||||||||
ReadFromProgressEvent: Whether to read input data from inside the progress event.When set to True this setting allows input data to be specified from within the Progress event. The class will repeatedly fire the Progress event to ask for data. Inside the event set InputMessage when the Operation parameter of the event is 1 (Read). When all data has been provided set the IsEOF parameter of the event to True. This allows input data to be chunked and provided piece by piece. The default value is False. | |||||||||
WriteToProgressEvent: Whether to write output data so it is accessible from inside the progress event.When set to True this setting allows output data to be obtained from within the Progress event. The class will repeatedly fire the Progress event to provide output data. Inside the event check OutputMessage when the Operation parameter of the event is 2 (Write). The IsEOF parameter should be checked inside the event to determine when all output data has been provided. This allows output data to be chunked and obtained piece by piece. The default value is False. | |||||||||
UseFipsCompliantAlgorithms: Restricts the usage to FIPS compliant algorithms only.When enabled the class will only support FIPS compliant algorithms. If a non-FIPS
compliant algorithm is used an exception is thrown. The following algorithms are supported
when this setting is True:
| |||||||||
RecursiveDecryptMode: Whether the encrypted data should be decrypted recursively.In some instances data will be encrypted multiple times. This configuration option determines how the class
will handle this situation. Options are:
|
Base Configuration Settings
SelectWaitMillis: The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process. If there are no events to process when DoEvents is called, the class will wait for the amount of time specified here before returning. The default value is 20. |
Base Configuration Settings
CodePage: The system code page used for Unicode to Multibyte translations.
The default code page is the Active Code Page (0).
The following is a list of valid code page identifiers:
|