com.didisoft.pgp
Class PGPLib

java.lang.Object
  extended by com.didisoft.pgp.bc.BaseLib
      extended by com.didisoft.pgp.PGPLib

public class PGPLib
extends com.didisoft.pgp.bc.BaseLib

OpenPGP Library for Android.
The library provides methods that can work with or without an OpenPGP KeyStore
(Note that the OpenPGP Key Store format this library uses, is different from the JDK Key Store format which is X.509 based.)
Supported Android versions: 2.1, 2.2, 2.3, 3.0, 4.0


Copyright DidiSoft Ltd.
www.didisoft.com


Field Summary
 
Fields inherited from class com.didisoft.pgp.bc.BaseLib
BOUNCY_CASTLE_PROVIDER
 
Constructor Summary
PGPLib()
          The default constructor of the library.
 
Method Summary
 void clearSignFile(java.lang.String inputFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, HashAlgorithm hashingAlgorithm, java.lang.String outputFileName)
          OpenPGP clear signs a file.
 void clearSignFileVersion3(java.lang.String inputFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, HashAlgorithm hashingAlgorithm, java.lang.String outputFileName)
          OpenPGP clear signs a file, using OpenPGP version 3 signature format (old format used by PGP 2.x)

Use when needed compatibility with PGP 2.x

GPG equivalent command: gpg --force-v3-sigs --clearsign inputFileName

Example:

 java.lang.String clearSignString(java.lang.String stringToSign, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, HashAlgorithm hashingAlgorithm)
          OpenPGP clear signs a String

Example usage:

 java.lang.String clearSignStringVersion3(java.lang.String stringToSign, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, HashAlgorithm hashingAlgorithm)
          OpenPGP clear signs a String, using OpenPGP version 3 signature format (the old format)

Use when needed compatibility with PGP 2.x and PGP 5.x systems.
 boolean decryptAndVerifyFile(java.lang.String encryptedFileName, KeyStore keyStore, java.lang.String privateKeyPassword, java.lang.String outputFileName)
          Decrypts and verifies one pass encrypted and signed OpenPGP file
Supports OpenPGP version 3 format too (used by PGP 6.5 and below).
 boolean decryptAndVerifyFile(java.lang.String encryptedFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFile, java.lang.String outputFileName)
          Decrypts and verifies an OpenPGP encrypted and signed file
Supports OpenPGP version 3 format too (used by PGP(r) 5 and below).
 boolean decryptAndVerifyFileTo(java.lang.String encryptedFileName, KeyStore keyStore, java.lang.String privateKeyPassword, java.lang.String outputFolder)
          Decrypts and verifies one pass encrypted and signed OpenPGP file
Supports OpenPGP version 3 format too (used by PGP 6.5 and below).
 boolean decryptAndVerifyFileTo(java.lang.String encryptedFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFile, java.lang.String outputFolder)
          Decrypts and verifies an OpenPGP encrypted and signed file to a folder
This methods is very suitable for multi file PGP archives.
 boolean decryptAndVerifyStream(java.io.InputStream encryptedStream, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream publicKeyStream, java.io.OutputStream outputStream)
          Decrypts and verifies OpenPGP encrypted and signed stream.
 boolean decryptAndVerifyStream(java.io.InputStream encryptedStream, KeyStore keyStore, java.lang.String privateKeyPassword, java.io.OutputStream outputStream)
          Decrypts and verifies OpenPGP encrypted and signed stream.
 boolean decryptAndVerifyStreamTo(java.io.InputStream encryptedStream, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream publicKeyStream, java.lang.String outputFolder)
          Decrypts and verifies OpenPGP encrypted and signed stream.
 boolean decryptAndVerifyStreamTo(java.io.InputStream encryptedStream, KeyStore keyStore, java.lang.String privateKeyPassword, java.lang.String outputFolder)
          Decrypts and verifies OpenPGP encrypted and signed stream.
 boolean decryptAndVerifyString(java.lang.String message, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFileName, java.lang.StringBuffer decryptedString)
          Decrypts and verifies an OpenPGP one pass signed end encrypted message.
 boolean decryptAndVerifyString(java.lang.String message, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFileName, java.lang.StringBuffer decryptedString, java.lang.String charsetName)
          Decrypts and verifies an OpenPGP one pass signed end encrypted message.
 java.lang.String decryptFile(java.lang.String encryptedFileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.lang.String outputFileName)
          Decrypts an OpenPGP encrypted file using Private key input stream.
 java.lang.String decryptFile(java.lang.String encryptedFileName, KeyStore pgpKeyStore, java.lang.String privateKeyPassword, java.lang.String outputFileName)
          Decrypts an OpenPGP encrypted file using key from a OpenPGP key store.
 java.lang.String decryptFile(java.lang.String encryptedFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String outputFileName)
          Decrypts an OpenPGP encrypted file using Private key file.
 java.lang.String decryptFilePBE(java.lang.String encryptedFileName, java.lang.String decryptionPassword, java.lang.String outputFileName)
          Decrypts an OpenPGP file that was encrypted with password (PBE, symmetric key encrypted).
 java.lang.String[] decryptFileTo(java.lang.String encryptedFileName, KeyStore keyStore, java.lang.String privateKeyPassword, java.lang.String outputFolder)
          Decrypts the content of an OpenPGP encrypted file into a folder.
 java.lang.String[] decryptFileTo(java.lang.String encryptedFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String outputFolder)
          Decrypts the content of an OpenPGP encrypted file into a folder.
 java.lang.String decryptStream(java.io.InputStream encryptedStream, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.OutputStream outputStream)
          Decrypts an OpenPGP encrypted stream using Private key input stream.
 java.lang.String decryptStream(java.io.InputStream encryptedStream, KeyStore pgpKeyStore, java.lang.String privateKeyPassword, java.io.OutputStream outputStream)
          Decrypts an OpenPGP encrypted stream using Private key input stream.
 java.lang.String[] decryptStreamTo(java.io.InputStream encryptedStream, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.lang.String outputFolder)
          Decrypts an OpenPGP encrypted stream to a specified folder.
 java.lang.String[] decryptStreamTo(java.io.InputStream encryptedStream, KeyStore keyStore, java.lang.String privateKeyPassword, java.lang.String outputFolder)
          Decrypts an OpenPGP encrypted stream to a specified folder.
 void detachedSignFile(java.lang.String dataFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String detachedSignatureFileName, boolean asciiArmor)
          Creates an OpenPGP detached signature for a given data stream contents.
 void detachedSignStream(java.io.InputStream dataStream, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.OutputStream outStream, boolean asciiArmor)
          Creates an OpenPGP detached signature for a given data stream contents.
 void detachedSignStream(java.io.InputStream dataStream, KeyStore keyStore, long keyId, java.lang.String privateKeyPassword, java.io.OutputStream outStream, boolean asciiArmor)
          Creates an OpenPGP detached signature for a given data stream contents.
 void detachedSignStream(java.io.InputStream dataStream, KeyStore keyStore, java.lang.String userId, java.lang.String privateKeyPassword, java.io.OutputStream outStream, boolean asciiArmor)
          Creates an OpenPGP detached signature for a given data stream contents.
 boolean detachedVerifyStream(java.io.InputStream dataFileStream, java.io.InputStream detachedSignatureStream, java.io.InputStream publicKeyStream)
          Verifies that an OpenPGP detached signature is signed from a trusted sender.
 boolean detachedVerifyStream(java.io.InputStream dataFileStream, java.io.InputStream detachedSignatureStream, KeyStore keyStore)
          Verifies that an OpenPGP detached signature is signed from a trusted sender.
 void encryptFile(java.lang.String dataFileName, java.io.InputStream publicKeyStream, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts given file using the first available public key from a key ring input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:

 void encryptFile(java.lang.String dataFileName, KeyStore keyStore, long[] recipientsKeyIds, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts a file for multiple recipients.


Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:
 void encryptFile(java.lang.String dataFileName, KeyStore keyStore, long keyId, java.lang.String outputFileName)
          OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.
 void encryptFile(java.lang.String dataFileName, KeyStore keyStore, long keyId, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.
 void encryptFile(java.lang.String dataFileName, KeyStore keyStore, java.lang.String[] recipientsUserIds, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts a file for multiple recipients.


Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:

 void encryptFile(java.lang.String dataFileName, KeyStore keyStore, java.lang.String userId, java.lang.String outputFileName)
          OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.
 void encryptFile(java.lang.String dataFileName, KeyStore keyStore, java.lang.String userId, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.
 void encryptFile(java.lang.String dataFileName, java.lang.String[] publicKeysFileNames, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts a file for multiple recipients.


Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 void encryptFile(java.lang.String dataFileName, java.lang.String publicKeyFileName, java.lang.String outputFileName, boolean asciiArmor)
          OpenPGP encrypts given file using the public key of the recipient.
 void encryptFile(java.lang.String dataFileName, java.lang.String publicKeyFileName, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts given file using the public key of the recipient.
 int encryptFileByKeyId(KeyStore keyStore, java.lang.String dataFileName, java.lang.String keyIdHex, java.lang.String outputFileName)
          Deprecated. Use instead
 int encryptFileByUserId(KeyStore keyStore, java.lang.String dataFileName, java.lang.String userID, java.lang.String outputFileName)
          Deprecated. Use instead
 void encryptFilePBE(java.lang.String dataFileName, java.lang.String password, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          Encrypts a file with a passphrase.
The same passphrase is used to decrypt the file

Equivalent GnuPG command:
gpg -c -e [dataFileName]

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 void encryptFilePBE(java.lang.String dataFileName, java.lang.String publicKeyFileName, java.lang.String alternativePassword, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          Encrypts a file with a public key and a passphrase.
The passphrase can be used to decrypt the file if the corresponding private key is lost.
 void encryptFiles(java.lang.String[] dataFileNames, KeyStore keyStore, long[] recipientsKeyIds, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts multiple files into one OpenPGP archive

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 void encryptFiles(java.lang.String[] dataFileNames, KeyStore keyStore, java.lang.String[] recipientsUserIds, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts multiple files into one OpenPGP archive

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:

 void encryptFiles(java.lang.String[] dataFileNames, java.lang.String[] publicKeysFileNames, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts multiple files into one OpenPGP archive.
 void encryptFiles(java.lang.String[] dataFileNames, java.lang.String publicKeyFileName, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts multiple files into one OpenPGP archive.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, java.io.InputStream publicKeyStream, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts an input stream using the first available Public key from a Key ring input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, KeyStore keyStore, long keyId, java.io.OutputStream out, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts input stream using a recipient public key located in a KeyStore

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, KeyStore keyStore, java.lang.String userId, java.io.OutputStream out, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP Encrypts Input Stream using a Public key located in a KeyStore

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, long streamLength, java.io.InputStream publicKeyStream, java.io.OutputStream out, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts an input stream using the first available public key supplied as an input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, long streamLength, java.lang.String publicKeyFileName, java.io.OutputStream out, boolean asciiArmor)
          OpenPGP encrypts stream using the first available public key from a key ring file.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, long streamLength, java.lang.String publicKeyFileName, java.io.OutputStream out, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts stream using the first available public key from a key ring file.
 void encryptStream(java.io.InputStream dataStream, java.lang.String fileName, PGPKeyPair publicKey, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP encrypts an input stream using the first available Public key from a Key ring input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 void encryptStreamPBE(java.io.InputStream dataStream, java.lang.String fileNameLabel, java.lang.String password, java.io.OutputStream out, boolean asciiArmor, boolean withIntegrityCheck)
          Encrypts an input stream with a password based OpenPGP encryption (PBE)

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
 java.lang.String getAsciiCommentHeader()
          Returns the Comment text that is printed in ASCII armored output
 java.lang.String getAsciiVersionHeader()
          Returns the Version comment text that is printed in ASCII armored output
 CompressionAlgorithm getCompression()
          Returns the preferred compression algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)
Default is ZIP
 CypherAlgorithm getCypher()
          Returns the preferred symmetric key algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)
Default is CAST5
 boolean isUseExpiredKeys()
          Returns should expired keys still be used
Default is false
 boolean isUseRevokedKeys()
          Returns should revoked keys still be used
Default is false
 void setAsciiVersionHeader(java.lang.String creator)
          Sets the Version comment text that is printed in ASCII armored output

Example usage:
 void setCompression(CompressionAlgorithm compression)
          Sets the preferred compression algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)
 void setCypher(CypherAlgorithm cypher)
          Sets the preferred symmetric key algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)
 void setHash(HashAlgorithm hash)
          Sets the preferred hashing algorithm used by all methods that produce OpenPGP signature (all Sign and SigneAndEncrypt methods)
 void setUseExpiredKeys(boolean value)
          Sets should expired keys still be used
 void setUseRevokedKeys(boolean value)
          Sets should revoked keys still be used
 void signAndEncryptFile(java.lang.String fileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream publicKeyStream, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptFile(java.lang.String fileName, KeyStore keyStore, long signKeyId, java.lang.String privateKeyPassword, long[] encKeyIds, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass for multiple recipients.
 void signAndEncryptFile(java.lang.String fileName, KeyStore keyStore, long signKeyId, java.lang.String privateKeyPassword, long encKeyId, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptFile(java.lang.String fileName, KeyStore keyStore, java.lang.String signUserId, java.lang.String privateKeyPassword, java.lang.String[] encUserIds, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass for multiple recipients.
 void signAndEncryptFile(java.lang.String fileName, KeyStore keyStore, java.lang.String signUserId, java.lang.String privateKeyPassword, java.lang.String encUserId, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptFile(java.lang.String dataFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String[] publicKeyFiles, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptFile(java.lang.String dataFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFile, java.lang.String outputFileName, boolean asciiArmor)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptFile(java.lang.String dataFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFile, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptFileVersion3(java.lang.String dataFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFile, java.lang.String outputFileName, boolean asciiArmor)
          OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with PGP 6.5 and below)

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 void signAndEncryptFileVersion3(java.lang.String dataFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFile, java.lang.String outputFileName, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with PGP 6.5 and below)

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 void signAndEncryptStream(java.io.InputStream dataFileStream, java.lang.String internalFileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream[] publicKeyStreams, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a stream in one pass.
 void signAndEncryptStream(java.io.InputStream dataFileStream, java.lang.String internalFileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream publicKeyStream, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a stream in one pass.
 void signAndEncryptStream(java.io.InputStream dataFileStream, java.lang.String internalFileName, KeyStore keyStore, java.lang.String signUserId, java.lang.String privateKeyPassword, java.lang.String encUserId, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass.
 void signAndEncryptStreamVersion3(java.io.InputStream dataFileStream, java.lang.String internalFileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream publicKeyStream, java.io.OutputStream outputStream, boolean asciiArmor)
          OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with PGP 6.5 and below)
(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 void signAndEncryptStreamVersion3(java.io.InputStream dataFileStream, java.lang.String internalFileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.InputStream publicKeyStream, java.io.OutputStream outputStream, boolean asciiArmor, boolean withIntegrityCheck)
          OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with older PGP 2.x systems)
(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 java.lang.String signAndEncryptString(java.lang.String stringToEncrypt, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFileName)
          OpenPGP signs and encrypts a String message in one pass
The input String is assumed to be UTF-8 encoded.
 java.lang.String signAndEncryptString(java.lang.String stringToEncrypt, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFileName, java.lang.String charsetName)
          OpenPGP signs and encrypts a String message in one pass
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 java.lang.String signAndEncryptStringVersion3(java.lang.String stringToEncrypt, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFileName)
          OpenPGP signs and encrypts a String message in one pass with OpenPGP version 3 signatures
The input String is assumed to be UTF-8 encoded.
 java.lang.String signAndEncryptStringVersion3(java.lang.String stringToEncrypt, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String publicKeyFileName, java.lang.String charsetName)
          OpenPGP signs and encrypts a String message in one pass creating OpenPGP version 3 signatures
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 void signFile(KeyStore keyStore, java.lang.String dataFileName, long privateKeyId, java.lang.String privateKeyPassword, java.lang.String outputFileName)
          OpenPGP signs given file using specified Private Key, using OpenPGP Key Store.
 void signFile(KeyStore keyStore, java.lang.String dataFileName, java.lang.String keyIdHex, java.lang.String privateKeyPassword, java.lang.String outputFileName)
          OpenPGP signs given file using specified Private Key, using OpenPGP Key Store.
 void signFile(java.lang.String fileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.OutputStream out, boolean asciiArmor)
          OpenPGP signs a file.
 void signFile(java.lang.String dataFileName, KeyStore keyStore, long privateKeyId, java.lang.String privateKeyPassword, java.lang.String outputFileName, boolean asciiArmor)
          OpenPGP signs a file, with private key stored in a KeyStore object.
 void signFile(java.lang.String dataFileName, KeyStore keyStore, java.lang.String privateKeyUserId, java.lang.String privateKeyPassword, java.lang.String outputFileName, boolean asciiArmor)
          OpenPGP signs a file, with private key stored in a KeyStore object.
 void signFile(java.lang.String inputFileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String outputFileName, boolean asciiArmor)
          OpenPGP signs a file.
 void signFileVersion3(java.lang.String fileName, java.lang.String privateKeyFileName, java.lang.String privateKeyPassword, java.lang.String outputFileName, boolean asciiArmor)
          Signs a file in OpenPGP version 3 format (compatible with PGP 2.x systems)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example usage:

 void signStream(java.io.InputStream dataInputStream, java.lang.String fileNameLabel, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.OutputStream signedStream, boolean asciiArmor)
          OpenPGP signs a stream.
 void signStream(java.io.InputStream dataInputStream, java.lang.String fileNameLabel, KeyStore keyStore, long signingKeyId, java.lang.String privateKeyPassword, java.io.OutputStream signedStream, boolean asciiArmor)
          OpenPGP signs stream with a private key stored in a KeyStore.
 void signStream(java.io.InputStream dataInputStream, java.lang.String fileNameLabel, KeyStore keyStore, java.lang.String signingKeyUserId, java.lang.String privateKeyPassword, java.io.OutputStream signedStream, boolean asciiArmor)
          OpenPGP signs stream with a private key stored in a KeyStore.
 void signStreamVersion3(java.io.InputStream dataFileStream, java.lang.String internalFileName, java.io.InputStream privateKeyStream, java.lang.String privateKeyPassword, java.io.OutputStream out, boolean asciiArmor)
          Signs a stream using OpenPGP version 3 signatures format (compatible with PGP 2.x systems)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 boolean verifyFile(java.io.InputStream dataFileStream, java.io.InputStream publicKeyStream)
          Deprecated. Use verifyStream(InputStream, InputStream)
 boolean verifyFile(java.lang.String dataFileName, KeyStore keyStore, java.lang.String outputFileName)
          Verifies the incoming file as being correctly signed.
 boolean verifyFile(java.lang.String dataFileName, java.lang.String publicKeyFileName)
          Verifies the incoming file as being correctly signed.
 boolean verifyFile(java.lang.String dataFileName, java.lang.String publicKeyFileName, java.lang.String outputFileName)
          Verifies the incoming file as being correctly signed.
 boolean verifyStream(java.io.InputStream dataFileStream, java.io.InputStream publicKeyStream)
          Verifies the incoming stream as being correctly signed.
 boolean verifyStream(java.io.InputStream dataFileStream, java.io.InputStream publicKeyStream, java.io.OutputStream outputFileStream)
          Verifies the incoming stream as being correctly signed.
 boolean verifyStream(java.io.InputStream dataFileStream, KeyStore keyStore, java.io.OutputStream outputFileStream)
          Verifies the incoming stream as being correctly signed.
 boolean verifyString(java.lang.String message, java.lang.String publicKeyFileName, java.lang.StringBuffer decryptedString)
          Verifies an OpenPGP signed only message.
 boolean verifyString(java.lang.String message, java.lang.String publicKeyFileName, java.lang.StringBuffer decryptedString, java.lang.String charsetName)
          Verifies an OpenPGP signed only message.
 
Methods inherited from class com.didisoft.pgp.bc.BaseLib
isForVerification, makeKeyFromPassPhrase, makeKeyFromPassPhrase
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PGPLib

public PGPLib()
The default constructor of the library.

Method Detail

isUseExpiredKeys

public boolean isUseExpiredKeys()
Returns should expired keys still be used
Default is false


setUseExpiredKeys

public void setUseExpiredKeys(boolean value)
Sets should expired keys still be used

Since:
2.5.7

isUseRevokedKeys

public boolean isUseRevokedKeys()
Returns should revoked keys still be used
Default is false

Since:
2.5.7

setUseRevokedKeys

public void setUseRevokedKeys(boolean value)
Sets should revoked keys still be used

Since:
2.5.7

setHash

public void setHash(HashAlgorithm hash)
Sets the preferred hashing algorithm used by all methods that produce OpenPGP signature (all Sign and SigneAndEncrypt methods)

See Also:
HashAlgorithm

getCypher

public CypherAlgorithm getCypher()
Returns the preferred symmetric key algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)
Default is CAST5

See Also:
CypherAlgorithm

getAsciiCommentHeader

public java.lang.String getAsciiCommentHeader()
Returns the Comment text that is printed in ASCII armored output

Returns:
string of the form "Comment: XXX" or empty string if no comment is set

getAsciiVersionHeader

public java.lang.String getAsciiVersionHeader()
Returns the Version comment text that is printed in ASCII armored output

Returns:
string of the form "Version: XXX"

setAsciiVersionHeader

public void setAsciiVersionHeader(java.lang.String creator)
Sets the Version comment text that is printed in ASCII armored output

Example usage:
 PGPLib pgp = new PGPLib();
 pgp.setAsciiVersionHeader("My Application 1.1"); 
 // Now in ASCII armored output will be printed "Version: My Application 1.1"  
 

Parameters:
creator - Program name and version that will be written in ASCII armored output Version: field

setCypher

public void setCypher(CypherAlgorithm cypher)
Sets the preferred symmetric key algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)

See Also:
CypherAlgorithm

getCompression

public CompressionAlgorithm getCompression()
Returns the preferred compression algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)
Default is ZIP

See Also:
CompressionAlgorithm

setCompression

public void setCompression(CompressionAlgorithm compression)
Sets the preferred compression algorithm used by all methods that produce OpenPGP messages (e.g Encrypt, Sign, etc.)

See Also:
CompressionAlgorithm

detachedVerifyStream

public boolean detachedVerifyStream(java.io.InputStream dataFileStream,
                                    java.io.InputStream detachedSignatureStream,
                                    java.io.InputStream publicKeyStream)
                             throws PGPException,
                                    java.io.IOException
Verifies that an OpenPGP detached signature is signed from a trusted sender.

Parameters:
dataFileStream - Input stream from the File to be verified
detachedSignatureStream - Detached signature as stream
publicKeyStream - Input stream from the Public key
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - I/O error
PGPException - OpenPGP encryption error
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message

detachedVerifyStream

public boolean detachedVerifyStream(java.io.InputStream dataFileStream,
                                    java.io.InputStream detachedSignatureStream,
                                    KeyStore keyStore)
                             throws PGPException,
                                    java.io.IOException
Verifies that an OpenPGP detached signature is signed from a trusted sender.

Parameters:
dataFileStream - Input stream from the File to be verified
detachedSignatureStream - Detached signature as stream
keyStore - KeyStore containing a public key that can verify the signature
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - I/O error
PGPException - OpenPGP encryption error
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message

detachedSignFile

public void detachedSignFile(java.lang.String dataFileName,
                             java.lang.String privateKeyFileName,
                             java.lang.String privateKeyPassword,
                             java.lang.String detachedSignatureFileName,
                             boolean asciiArmor)
                      throws PGPException,
                             java.io.IOException
Creates an OpenPGP detached signature for a given data stream contents.

Hash algorithm used is the one specified through setHash(HashAlgorithm)
Note: The caller has the responsibility to close the output stream.

Example:
 import java.io;
 import com.didisoft.pgp.*;
 
 public class DetachedSignDemo
 {
    public void Demo() throws Exception
    {
        // initialize the library
        PGPLib pgp = new PGPLib();
        
        // should output be binary or ASCII armored 
        boolean asciiArmor = true;
        
        String dataFileName = "C:\\INPUT.txt"; 
        String privateKeyFileName = "C:\\private_key.asc";
        
        String detachedSignatureFile = "C:\\INPUT.txt.sig"; 
        
        pgp.detachedSignStream(dataFileName, 
                               privateKeyFileName, 
                               "private key password",
                               detachedSignatureFile, 
                               asciiArmor);              
    }
 }
 

Parameters:
dataFileName - File name for which an OpenPGP detached signature will be created (absolute or relative path)
privateKeyFileName - Private key file (absolute or relative path)
privateKeyPassword - Private key password
detachedSignatureFileName - File name where the detached signature will be stored (absolute or relative path)
asciiArmor - if true, the output file is in ASCII armored format, when false the output will be in binary format
Throws:
PGPException - if an OpenPGP related error has occurred
java.io.IOException - if an I/O error has occurred
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect

detachedSignStream

public void detachedSignStream(java.io.InputStream dataStream,
                               java.io.InputStream privateKeyStream,
                               java.lang.String privateKeyPassword,
                               java.io.OutputStream outStream,
                               boolean asciiArmor)
                        throws PGPException,
                               java.io.IOException
Creates an OpenPGP detached signature for a given data stream contents.

Hash algorithm used is the one specified through setHash(HashAlgorithm)
Note: The caller has the responsibility to close the output stream.

Example:
 import java.io;
 import com.didisoft.pgp.*;
 
 public class DetachedSignDemo
 {
    public void Demo() throws Exception
    {
        // initialize the library
        PGPLib pgp = new PGPLib();
        
        // should output be binary or ASCII armored 
        boolean asciiArmor = true;
        
        InputStream dataFileStream = FileInputStream("C:\\INPUT.txt"); 
        InputStream privateKeyStream = new FileInputStream("C:\\private_key.asc");
        
        OutputStream outputSigned = null;
        try 
        {
         outputSigned = new FileOutputStream("C:\\INPUT.txt.sig"); 
        
         pgp.detachedSignStream(dataFileStream, 
                               privateKeyStream, 
                               "private key password",
                               outputSigned, 
                               asciiArmor);              
        } finally {
         // we have the obligation to close the output stream
         outputSigned.close();
        }
    }
 }
 

Parameters:
dataStream - Data stream for which a detached signature is to be created
privateKeyStream - Private key as stream, used for signing
privateKeyPassword - Private key password
outStream - Output stream where the detached signature will be stored
asciiArmor - if true, output file is in ASCII armored format
Throws:
PGPException - if an OpenPGP related error has occurred
java.io.IOException - if an I/O error has occurred
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect

detachedSignStream

public void detachedSignStream(java.io.InputStream dataStream,
                               KeyStore keyStore,
                               long keyId,
                               java.lang.String privateKeyPassword,
                               java.io.OutputStream outStream,
                               boolean asciiArmor)
                        throws PGPException,
                               java.io.IOException
Creates an OpenPGP detached signature for a given data stream contents.

Hash algorithm used is the one specified through setHash(HashAlgorithm)
Note: The caller has the responsibility to close the output stream.

Parameters:
dataStream - Data stream for which a detached signature is to be created
keyStore - KeyStore instance containing the private key used for signing
keyId - Key Id of the private key that will be used for signing
privateKeyPassword - Private key password
outStream - Output stream where the detached signature will be stored
asciiArmor - if true, output file is in ASCII armored format
Throws:
PGPException - if an OpenPGP related error has occurred
java.io.IOException - if an I/O error has occurred
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect

detachedSignStream

public void detachedSignStream(java.io.InputStream dataStream,
                               KeyStore keyStore,
                               java.lang.String userId,
                               java.lang.String privateKeyPassword,
                               java.io.OutputStream outStream,
                               boolean asciiArmor)
                        throws PGPException,
                               java.io.IOException
Creates an OpenPGP detached signature for a given data stream contents.

Hash algorithm used is the one specified through setHash(HashAlgorithm)
Note: The caller has the responsibility to close the output stream.

Parameters:
dataStream - Data stream for which a detached signature is to be created
keyStore - KeyStore instance containing the private key used for signing
userId - The first private key with this User Id will be used for signing.
privateKeyPassword - Private key password
outStream - Output stream where the detached signature will be stored
asciiArmor - if true, output file is in ASCII armored format
Throws:
PGPException - if an OpenPGP related error has occurred
java.io.IOException - if an I/O error has occurred
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect

clearSignFile

public void clearSignFile(java.lang.String inputFileName,
                          java.lang.String privateKeyFileName,
                          java.lang.String privateKeyPassword,
                          HashAlgorithm hashingAlgorithm,
                          java.lang.String outputFileName)
                   throws PGPException,
                          java.io.IOException,
                          WrongPasswordException
OpenPGP clear signs a file.

GPG equivalent command: gpg --clearsign inputFileName --output outputFileName

Example:

 import com.didisoft.pgp.*;
 
 public class ClearSignDemo {
     public static void main(String[] args) throws Exception{
         // initialize the library 
         PGPLib pgp = new PGPLib();
         
         // clear sign
         pgp.clearSignFile("INPUT.txt", 
                           "private.key", 
                           "private key password", 
                           HashAlgorithm.SHA256, 
                           "OUTPUT.sig.txt");
     }
 }
 

Parameters:
inputFileName - File name to be clear signed (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path)
privateKeyPassword - Private key password
hashingAlgorithm - Hashing algorithm, one of: SHA256, SHA384, SHA512, SHA224, SHA1, MD5, RIPEMD160, MD2
outputFileName - Output file name (absolute or relative path)
Throws:
java.io.IOException - If a file/stream operation throws an exception
org.spongycastle.openpgp.PGPException - OpenPGP error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the private key password is incorrect
java.security.InvalidParameterException - If the hashingAlgorithm parameter is not among the supported values
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
PGPException
See Also:
HashAlgorithm

clearSignFileVersion3

public void clearSignFileVersion3(java.lang.String inputFileName,
                                  java.lang.String privateKeyFileName,
                                  java.lang.String privateKeyPassword,
                                  HashAlgorithm hashingAlgorithm,
                                  java.lang.String outputFileName)
                           throws PGPException,
                                  java.io.IOException,
                                  WrongPasswordException
OpenPGP clear signs a file, using OpenPGP version 3 signature format (old format used by PGP 2.x)

Use when needed compatibility with PGP 2.x

GPG equivalent command: gpg --force-v3-sigs --clearsign inputFileName

Example:

 import com.didisoft.pgp.*;
 
 public class ClearSignVersion3Demo {
     public static void main(String[] args) throws Exception{
         // initialize the library 
         PGPLib pgp = new PGPLib();
         
         // clear sign with version 3 signature
         pgp.clearSignFileVersion3("INPUT.txt", 
                           "private.key", 
                           "private key password", 
                           HashAlgorithm.SHA256, 
                           "OUTPUT.sig.txt");
     }
 }
 

Parameters:
inputFileName - File name to be clear signed (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path)
privateKeyPassword - Private key password
hashingAlgorithm - Hashing algorithm, one of: SHA256, SHA384, SHA512, SHA224, SHA1, MD5, RIPEMD160, MD2
outputFileName - Output file name (absolute or relative path)
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the private key password is incorrect
java.security.InvalidParameterException - If the hashingAlgorithm parameter is other than the supported values
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
HashAlgorithm, #clearSignString(String, String, String, String)

clearSignString

public java.lang.String clearSignString(java.lang.String stringToSign,
                                        java.lang.String privateKeyFileName,
                                        java.lang.String privateKeyPassword,
                                        HashAlgorithm hashingAlgorithm)
                                 throws PGPException,
                                        java.io.IOException,
                                        WrongPasswordException
OpenPGP clear signs a String

Example usage:

 import com.didisoft.pgp.*;
 
 public class ClearSignDemo {
     public static void main(String[] args) throws Exception{
         // initialize the library 
         PGPLib pgp = new PGPLib();
         
         String message = "The quick brown fox jumps.";
          
         // clear sign
         String clearSignedMessage = 
           pgp.clearSignString(message, 
                               "private.key", 
                               "private key password", 
                               HashAlgorithm.SHA256);
     }
 }
 

Parameters:
stringToSign - String message to be signed
privateKeyFileName - Private Key file (absolute or relative path)
privateKeyPassword - Private key password
hashingAlgorithm - Hashing algorithm, one of: SHA256, SHA384, SHA512, SHA224, SHA1, MD5, RIPEMD160, MD2
Returns:
The clear signed message.
Throws:
java.io.IOException - If a file/stream operation throws an exception
org.spongycastle.openpgp.PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the private key password is incorrect
java.security.InvalidParameterException - If the hashingAlgorithm parameter is other than the supported values. Runtime exception
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
PGPException
See Also:
#clearSignStringVersion3(String, String, String, String), HashAlgorithm

clearSignStringVersion3

public java.lang.String clearSignStringVersion3(java.lang.String stringToSign,
                                                java.lang.String privateKeyFileName,
                                                java.lang.String privateKeyPassword,
                                                HashAlgorithm hashingAlgorithm)
                                         throws PGPException,
                                                java.io.IOException,
                                                WrongPasswordException
OpenPGP clear signs a String, using OpenPGP version 3 signature format (the old format)

Use when needed compatibility with PGP 2.x and PGP 5.x systems.

Parameters:
stringToSign - String message to be signed
privateKeyFileName - Private Key file (absolute or relative path)
privateKeyPassword - Private key password
hashingAlgorithm - Hashing algorithm, one of: SHA256, SHA384, SHA512, SHA224, SHA1, MD5, RIPEMD160, MD2.
@see HashAlgorithm
Returns:
The clear signed message.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the private key password is incorrect
java.security.InvalidParameterException - If the hashingAlgorithm parameter is other than the supported values. Runtime exception
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
#clearSignFileVersion3(String, String, String, String, String), verifyFile(String, String, String)

signFile

public void signFile(KeyStore keyStore,
                     java.lang.String dataFileName,
                     java.lang.String keyIdHex,
                     java.lang.String privateKeyPassword,
                     java.lang.String outputFileName)
              throws PGPException,
                     WrongPasswordException,
                     java.io.IOException
OpenPGP signs given file using specified Private Key, using OpenPGP Key Store.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store instance containing the private key to be used for signing
keyIdHex - key ID of the Public Key in Hex format
privateKeyPassword - Private key password
outputFileName - File name of the Output encrypted file (absolute or relative path)
Throws:
PGPException - OpenPGP encryption error
WrongPasswordException - If the private key password is incorrect
java.io.IOException - I/O error
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyFile(String, String, String)

signFile

public void signFile(KeyStore keyStore,
                     java.lang.String dataFileName,
                     long privateKeyId,
                     java.lang.String privateKeyPassword,
                     java.lang.String outputFileName)
              throws PGPException,
                     WrongPasswordException,
                     java.io.IOException
OpenPGP signs given file using specified Private Key, using OpenPGP Key Store.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.KeyStore;
 import com.didisoft.pgp.PGPLib;
 
 public class KeyStoreSignFileDemo {
     public static void main(String[] args) throws Exception{        
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         long signKeyId = keyStore.getKeyIdForUserId("demo@didisoft.com");
         String signKeyPassword = "changeit";        
         
         pgp.signFile("INPUT.txt",
                     keyStore, 
                     signKeyId, 
                     signKeyPassword, 
                     "signed.pgp");
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store containing the private key to be used for signing
privateKeyId - Key Id of the private key to be used for signing
privateKeyPassword - Private key password
outputFileName - File name of the output signed file (absolute or relative path)
Throws:
org.spongycastle.openpgp.PGPException - OpenPGP encryption error
WrongPasswordException - If the private key password is incorrect
java.io.IOException - I/O error
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
PGPException
See Also:
verifyFile(String, KeyStore, String)

signFile

public void signFile(java.lang.String dataFileName,
                     KeyStore keyStore,
                     java.lang.String privateKeyUserId,
                     java.lang.String privateKeyPassword,
                     java.lang.String outputFileName,
                     boolean asciiArmor)
              throws PGPException,
                     WrongPasswordException,
                     java.io.IOException
OpenPGP signs a file, with private key stored in a KeyStore object.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.KeyStore;
 import com.didisoft.pgp.PGPLib;
 
 public class KeyStoreSignFileDemo {
     public static void main(String[] args) throws Exception{        
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         long signKeyUserId = "demo@didisoft.com";
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         pgp.signFile("INPUT.txt",
                     keyStore, 
                     signKeyUserId, 
                     signKeyPassword, 
                     "signed.pgp",
                     asciiArmor);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store containing the private key to be used for signing
privateKeyUserId - signing key User Id
privateKeyPassword - signing key password
outputFileName - File name of the output signed file (absolute or relative path)
asciiArmor - boolean if true the output is ASCII armored, if false the output is in binary format
Throws:
org.spongycastle.openpgp.PGPException - OpenPGP encryption error
WrongPasswordException - If the private key password is incorrect
java.io.IOException - I/O error
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
PGPException
Since:
2.5.2
See Also:
verifyFile(String, KeyStore, String)

signFile

public void signFile(java.lang.String dataFileName,
                     KeyStore keyStore,
                     long privateKeyId,
                     java.lang.String privateKeyPassword,
                     java.lang.String outputFileName,
                     boolean asciiArmor)
              throws PGPException,
                     WrongPasswordException,
                     java.io.IOException
OpenPGP signs a file, with private key stored in a KeyStore object.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.KeyStore;
 import com.didisoft.pgp.PGPLib;
 
 public class KeyStoreSignFileDemo {
     public static void main(String[] args) throws Exception{        
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         long signKeyId = keyStore.getKeyIdForKeyIdHex("79AEAE03");
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         pgp.signFile("INPUT.txt",
                     keyStore, 
                     signKeyId, 
                     signKeyPassword, 
                     "signed.pgp",
                     asciiArmor);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store containing the private key to be used for signing
privateKeyId - signing key Id
privateKeyPassword - signing key password
outputFileName - File name of the output signed file (absolute or relative path)
asciiArmor - boolean if true the output is ASCII armored, if false the output is in binary format
Throws:
PGPException - OpenPGP encryption error
WrongPasswordException - If the private key password is incorrect
java.io.IOException - I/O error
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
Since:
2.5.7
See Also:
verifyFile(String, KeyStore, String)

signFile

public void signFile(java.lang.String inputFileName,
                     java.lang.String privateKeyFileName,
                     java.lang.String privateKeyPassword,
                     java.lang.String outputFileName,
                     boolean asciiArmor)
              throws java.io.IOException,
                     PGPException,
                     WrongPasswordException
OpenPGP signs a file.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class SignFile {
     public static void main(String[] args) throws Exception{
         // initialize the library 
         PGPLib pgp = new PGPLib();
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         pgp.signFile("INPUT.txt", 
                     "private_key.asc", 
                     "private key password", 
                     "signed.pgp", 
                     asciiArmor);
     }
 }
 

Parameters:
inputFileName - File Name to be OpenPGP Signed (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path)
privateKeyPassword - Private key password
outputFileName - File name of the output OpenPGP signed file (absolute or relative path)
asciiArmor - boolean if true the output is ASCII armored, if false the output is in binary format
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
WrongPasswordException - If the private key password is incorrect
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyFile(InputStream, InputStream)

signFile

public void signFile(java.lang.String fileName,
                     java.io.InputStream privateKeyStream,
                     java.lang.String privateKeyPassword,
                     java.io.OutputStream out,
                     boolean asciiArmor)
              throws java.io.IOException,
                     PGPException,
                     WrongPasswordException
OpenPGP signs a file.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignFileDemo {
     public static void main(String[] args) throws Exception{        
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileOutputStream outputSignedStream = new FileOutputStream("signed.pgp");
          
         pgp.signFile("c:\\Data\\INPUT.txt",
                     privateKeyStream, 
                     signKeyPassword, 
                     outputSignedFile,
                     asciiArmor);
     }
 }
 

Parameters:
fileName - File Name to be signed (absolute or relative path)
privateKeyStream - Private Key input stream
out - Output Stream signed
privateKeyPassword - Private key password
asciiArmor - if true output stream is in ASCII armored format, when false output stream is in binary format
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyStream(InputStream, InputStream, OutputStream)

signStream

public void signStream(java.io.InputStream dataInputStream,
                       java.lang.String fileNameLabel,
                       java.io.InputStream privateKeyStream,
                       java.lang.String privateKeyPassword,
                       java.io.OutputStream signedStream,
                       boolean asciiArmor)
                throws java.io.IOException,
                       PGPException,
                       WrongPasswordException
OpenPGP signs a stream.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignStreamDemo {
     public static void main(String[] args) throws Exception{        
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputSignedStream = new FileOutputStream("signed.pgp");
          
         pgp.signStream(dataStream,
                     "INPUT.txt" 
                     privateKeyStream, 
                     signKeyPassword, 
                     outputSignedFile,
                     asciiArmor);
     }
 }
 

Parameters:
dataInputStream - InputStream containing data to be signed
fileNameLabel - File name string to be associated with the data stream in the produced OpenPGP archive.
privateKeyStream - Private key input stream
signedStream - Output stream signed
privateKeyPassword - Private key password
asciiArmor - if true output stream is in ASCII armored format, when false output stream is in binary format
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyStream(InputStream, InputStream, OutputStream)

signStream

public void signStream(java.io.InputStream dataInputStream,
                       java.lang.String fileNameLabel,
                       KeyStore keyStore,
                       java.lang.String signingKeyUserId,
                       java.lang.String privateKeyPassword,
                       java.io.OutputStream signedStream,
                       boolean asciiArmor)
                throws java.io.IOException,
                       PGPException,
                       WrongPasswordException
OpenPGP signs stream with a private key stored in a KeyStore.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class SignStreamDemo {
     public static void main(String[] args) throws Exception{        
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         long signUserId = "demo@didisoft.com";
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputSignedStream = new FileOutputStream("signed.pgp");
          
         pgp.signStream(dataStream,
                     "INPUT.txt" 
                     keyStore, 
                     signUserId, 
                     signKeyPassword, 
                     outputSignedFile,
                     asciiArmor);
     }
 }
 

Parameters:
dataInputStream - InputStream containing data to be signed
fileNameLabel - File name string to be associated with the data stream in the produced OpenPGP archive.
keyStore - KeyStore containing the private key for signing
signingKeyUserId - Primary User Id of the private key
privateKeyPassword - Private key password
signedStream - Output stream signed
asciiArmor - if true output stream is in ASCII armored format, when false output stream is in binary format
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP encryption error
NoPrivateKeyFoundException - if the private key source does not contain a private key or is corrupted
WrongPasswordException - If the private key password is incorrect
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyStream(InputStream, KeyStore, OutputStream)

signStream

public void signStream(java.io.InputStream dataInputStream,
                       java.lang.String fileNameLabel,
                       KeyStore keyStore,
                       long signingKeyId,
                       java.lang.String privateKeyPassword,
                       java.io.OutputStream signedStream,
                       boolean asciiArmor)
                throws java.io.IOException,
                       PGPException,
                       WrongPasswordException
OpenPGP signs stream with a private key stored in a KeyStore.

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class SignStreamDemo {
     public static void main(String[] args) throws Exception{        
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         long signKeyId = keyStore.getKeyIdForUserId("demo@didisoft.com");
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputSignedStream = new FileOutputStream("signed.pgp");
          
         pgp.signStream(dataStream,
                     "INPUT.txt" 
                     keyStore, 
                     signKeyId, 
                     signKeyPassword, 
                     outputSignedFile,
                     asciiArmor);
     }
 }
 

Parameters:
dataInputStream - InputStream containing data to be signed
fileNameLabel - File name string to be associated with the data stream in the produced OpenPGP archive.
keyStore - KeyStore containing the private key for signing
signingKeyId - Key Id of the private key
privateKeyPassword - Private key password
signedStream - Output stream signed
asciiArmor - if true output stream is in ASCII armored format, when false output stream is in binary format
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP encryption error
NoPrivateKeyFoundException - if the private key source does not contain a private key or is corrupted
WrongPasswordException - If the private key password is incorrect
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyStream(InputStream, KeyStore, OutputStream)

signFileVersion3

public void signFileVersion3(java.lang.String fileName,
                             java.lang.String privateKeyFileName,
                             java.lang.String privateKeyPassword,
                             java.lang.String outputFileName,
                             boolean asciiArmor)
                      throws java.io.IOException,
                             PGPException,
                             WrongPasswordException
Signs a file in OpenPGP version 3 format (compatible with PGP 2.x systems)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class SignFileV3Demo {
     public static void main(String[] args) throws Exception{
         // initialize the library 
         PGPLib pgp = new PGPLib();
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         signFileVersion3("INPUT.txt", 
                     "private_key.asc", 
                     "private key password", 
                     "signed.pgp", 
                     asciiArmor);
     }
 }
 

Parameters:
fileName - File Name to be signed (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path)
privateKeyPassword - Private Key password
outputFileName - File name of the output OpenPGP signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
Throws:
java.io.IOException - I/O error
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect. Extends PGPException
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
See Also:
verifyFile(String, String, String)

signStreamVersion3

public void signStreamVersion3(java.io.InputStream dataFileStream,
                               java.lang.String internalFileName,
                               java.io.InputStream privateKeyStream,
                               java.lang.String privateKeyPassword,
                               java.io.OutputStream out,
                               boolean asciiArmor)
                        throws java.io.IOException,
                               PGPException,
                               WrongPasswordException
Signs a stream using OpenPGP version 3 signatures format (compatible with PGP 2.x systems)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignStreamDemo {
     public static void main(String[] args) throws Exception{        
         // initialize the library 
         PGPLib pgp = new PGPLib();
 
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputSignedStream = new FileOutputStream("signed.pgp");
          
         pgp.signStreamVersion3(dataStream,
                     "INPUT.txt" 
                     privateKeyStream, 
                     signKeyPassword, 
                     outputSignedFile,
                     asciiArmor);
     }
 }
 

Parameters:
dataFileStream - File data input stream, to be signed
internalFileName - File name to be associated with the data stream in the produced OpenPGP archive
privateKeyStream - Private Key input stream
out - Output Stream signed
privateKeyPassword - Private key password
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
Throws:
java.io.IOException - If a file/stream operation throws an exception
org.spongycastle.openpgp.PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the key is expired. Extends PGPException
KeyIsRevokedException - If the key is revoked. Extends PGPException
PGPException
See Also:
verifyStream(InputStream, InputStream, OutputStream)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String dataFileName,
                               java.lang.String privateKeyFileName,
                               java.lang.String privateKeyPassword,
                               java.lang.String publicKeyFile,
                               java.lang.String outputFileName,
                               boolean asciiArmor)
                        throws PGPException,
                               WrongPasswordException,
                               java.io.IOException
OpenPGP signs and encrypts a file in one pass.
(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt", 
                                 "private_key.asc", 
                                 "key password",
                                 "recipient_key.asc",
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path), used for signing
privateKeyPassword - Private key password
publicKeyFile - Public key file (absolute or relative path), used for encryption
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyFile(String, String, String, String, String)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String dataFileName,
                               java.lang.String privateKeyFileName,
                               java.lang.String privateKeyPassword,
                               java.lang.String publicKeyFile,
                               java.lang.String outputFileName,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws PGPException,
                               WrongPasswordException,
                               java.io.IOException
OpenPGP signs and encrypts a file in one pass.
(Note that this is not the same as first encrypt and then sign a file)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt", 
                                 "private_key.asc", 
                                 "key password",
                                 "recipient_key.asc",
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path), used for signing
privateKeyPassword - Private key password
publicKeyFile - Public key file (absolute or relative path), used for encryption
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the output file.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyFile(String, String, String, String, String)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String dataFileName,
                               java.lang.String privateKeyFileName,
                               java.lang.String privateKeyPassword,
                               java.lang.String[] publicKeyFiles,
                               java.lang.String outputFileName,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws PGPException,
                               WrongPasswordException,
                               java.io.IOException
OpenPGP signs and encrypts a file in one pass.
(Note that this is not the same as first encrypt and then sign a file)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         String[] recipientKeys = new String[] {"recipient_key1.asc", 
                                              "recipient_key2.asc",
                                              "recipient_key3.asc"};
         
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt", 
                                 "private_key.asc", 
                                 "key password",
                                 recipientKeys,
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path), used for signing
privateKeyPassword - Private key password
publicKeyFiles - Public key files that will be used for encryption (absolute or relative paths)
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the output file.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the specified password for the private key is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyFile(String, String, String, String, String)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String fileName,
                               java.io.InputStream privateKeyStream,
                               java.lang.String privateKeyPassword,
                               java.io.InputStream publicKeyStream,
                               java.io.OutputStream outputStream,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws java.io.IOException,
                               PGPException,
                               WrongPasswordException
OpenPGP signs and encrypts a file in one pass.
(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";
         
         FileInputStream publicEncryptionKeyStream = new FileInputStream("recipient_key.asc");        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileOutputStream outputStream = new FileOutputStream("encrypted_output.pgp");
         
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt", 
                                 privateKeyStream, 
                                 signKeyPassword,
                                 publicEncryptionKeyStream,
                                 outputStream, 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
fileName - File Name to be OpenPGP Signed (absolute or relative path)
privateKeyStream - Private Key input stream (used for signing)
privateKeyPassword - Private key password
publicKeyStream - Public Key input stream (used for encryption)
outputStream - Output Stream signed and encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyStream does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptStream

public void signAndEncryptStream(java.io.InputStream dataFileStream,
                                 java.lang.String internalFileName,
                                 java.io.InputStream privateKeyStream,
                                 java.lang.String privateKeyPassword,
                                 java.io.InputStream publicKeyStream,
                                 java.io.OutputStream outputStream,
                                 boolean asciiArmor,
                                 boolean withIntegrityCheck)
                          throws java.io.IOException,
                                 PGPException,
                                 WrongPasswordException,
                                 NoPublicKeyFoundException,
                                 NoPrivateKeyFoundException
OpenPGP signs and encrypts a stream in one pass.
(Note that this is not the same as first encrypt and then sign)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";
         
         FileInputStream publicEncryptionKeyStream = new FileInputStream("recipient_key.asc");        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputStream = new FileOutputStream("encrypted_output.pgp");
         
         // sign and encrypt
         pgp.signAndEncryptStream(dataStream,
                                 "INPUT.txt", 
                                 privateKeyStream, 
                                 signKeyPassword,
                                 publicEncryptionKeyStream,
                                 outputStream, 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileStream - Data input stream to be signed
internalFileName - File name string to be associated with the data stream in the produced OpenPGP archive.
privateKeyStream - Private Key input stream (used for signing)
privateKeyPassword - Private key password
publicKeyStream - Public Key input stream (used for encryption)
outputStream - Output Stream signed and encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyStream does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptStream

public void signAndEncryptStream(java.io.InputStream dataFileStream,
                                 java.lang.String internalFileName,
                                 java.io.InputStream privateKeyStream,
                                 java.lang.String privateKeyPassword,
                                 java.io.InputStream[] publicKeyStreams,
                                 java.io.OutputStream outputStream,
                                 boolean asciiArmor,
                                 boolean withIntegrityCheck)
                          throws java.io.IOException,
                                 PGPException,
                                 WrongPasswordException,
                                 NoPublicKeyFoundException,
                                 NoPrivateKeyFoundException
OpenPGP signs and encrypts a stream in one pass.
(Note that this is not the same as first encrypt and then sign)

Optional settings:
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";
         
         FileInputStream publicEncryptionKeyStream = new FileInputStream("recipient_key.asc");        
         
         // specify should the output be ASCII or binary
         boolean asciiArmor = false;
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputStream = new FileOutputStream("encrypted_output.pgp");
         
         // sign and encrypt
         pgp.signAndEncryptStream(dataStream,
                                 "INPUT.txt", 
                                 privateKeyStream, 
                                 signKeyPassword,
                                 publicEncryptionKeyStream,
                                 outputStream, 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileStream - Data input stream to be signed
internalFileName - File name string to be associated with the data stream in the produced OpenPGP archive.
privateKeyStream - Private Key input stream (used for signing)
privateKeyPassword - Private key password
publicKeyStreams - Public Key input streams (used for encryption)
outputStream - Output Stream signed and encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyStream does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyStream does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String fileName,
                               KeyStore keyStore,
                               java.lang.String signUserId,
                               java.lang.String privateKeyPassword,
                               java.lang.String encUserId,
                               java.lang.String outputFileName,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws java.io.IOException,
                               PGPException
OpenPGP signs and encrypts a file in one pass.

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // The signing key is usually our private key
         String signKeyUserId = "demo@didisoft.com";
         String signKeyPassword = "changeit";
         
         String encryptionKeyUserId = "Recipient Company ACM";
                 
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt",
                                 keyStore,  
                                 signKeyUserId, 
                                 signKeyPassword,
                                 encryptionKeyUserId,
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
fileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
keyStore - KeyStore containing the private key for signing and the public key for encryption
signUserId - User Id of the private key for signing of the form "name (comment) <email address>"
privateKeyPassword - Private key password
encUserId - User Id of the public encryption key of the form "name (comment) <email address>"
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - if true integrity check information is added to the output file.
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
verifyFile(String, String, String)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String fileName,
                               KeyStore keyStore,
                               java.lang.String signUserId,
                               java.lang.String privateKeyPassword,
                               java.lang.String[] encUserIds,
                               java.lang.String outputFileName,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws java.io.IOException,
                               PGPException
OpenPGP signs and encrypts a file in one pass for multiple recipients.

(Note that this is not the same as first encrypt and then sign a file)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // The signing key is usually our private key
         String signKeyUserId = "demo@didisoft.com";
         String signKeyPassword = "changeit";
         
         String encryptionKeyUserIds = new String[] {"Recipient Company ACM",
                                                     "Recipient Company 2",
                                                     "Recipient Company 3"} ;
                 
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt",
                                 keyStore,  
                                 signKeyUserId, 
                                 signKeyPassword,
                                 encryptionKeyUserIds,
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
fileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
keyStore - KeyStore containing the private key for signing and the public key for encryption
signUserId - User Id of the private key for signing of the form "name (comment) <email address>"
privateKeyPassword - Private key password
encUserIds - Array of User Id's of the public keys that will be used for encryption
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - if true integrity check information is added to the output file.
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptAndVerifyFileTo(String, KeyStore, String, String), decryptAndVerifyFile(String, KeyStore, String, String)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String fileName,
                               KeyStore keyStore,
                               long signKeyId,
                               java.lang.String privateKeyPassword,
                               long[] encKeyIds,
                               java.lang.String outputFileName,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws java.io.IOException,
                               PGPException
OpenPGP signs and encrypts a file in one pass for multiple recipients.

(Note that this is not the same as first encrypt and then sign a file)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // The signing key is usually our private key
         long signKeyId = keyStore.getKeyIdForUserId("demo@didisoft.com");
         String signKeyPassword = "changeit";
         
         long[] encryptionKeyIds = new long[] {keyStore.getKeyIdForKeyIdHex("74BB3286"),
                                               keyStore.getKeyIdForUserId("recipient@company.com")};
                 
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt",
                                 keyStore,  
                                 signKeyId, 
                                 signKeyPassword,
                                 encryptionKeyIds,
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
fileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
keyStore - KeyStore containing the private key for signing and the public key for encryption
signKeyId - Key Id of the private key for signing
privateKeyPassword - Private key password
encKeyIds - Key Id's of the public keys that will be used for encryption
outputFileName - File name of the output OpenPGP file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - if true integrity check information is added to the output file.
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptAndVerifyFileTo(String, KeyStore, String, String), decryptAndVerifyFile(String, KeyStore, String, String)

signAndEncryptFile

public void signAndEncryptFile(java.lang.String fileName,
                               KeyStore keyStore,
                               long signKeyId,
                               java.lang.String privateKeyPassword,
                               long encKeyId,
                               java.lang.String outputFileName,
                               boolean asciiArmor,
                               boolean withIntegrityCheck)
                        throws java.io.IOException,
                               PGPException
OpenPGP signs and encrypts a file in one pass.

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // The signing key is usually our private key
         long signKeyId = keyStore.getKeyIdForUserId("demo@didisoft.com");
         String signKeyPassword = "changeit";
         
         long encryptionKeyId = keyStore.getKeyIdForKeyIdHex("74BB3286");
                 
         // sign and encrypt
         pgp.signAndEncryptFile("INPUT.txt",
                                 keyStore,  
                                 signKeyId, 
                                 signKeyPassword,
                                 encryptionKeyId,
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
fileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
keyStore - KeyStore containing the private key for signing and the public key for encryption
signKeyId - Key Id of the private key for signing
privateKeyPassword - Private key password
encKeyId - Key Id of the public encryption key
outputFileName - File name of the output OpenPGP file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - if true integrity check information is added to the output file.
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptAndVerifyFileTo(String, KeyStore, String, String), decryptAndVerifyFile(String, KeyStore, String, String)

signAndEncryptStream

public void signAndEncryptStream(java.io.InputStream dataFileStream,
                                 java.lang.String internalFileName,
                                 KeyStore keyStore,
                                 java.lang.String signUserId,
                                 java.lang.String privateKeyPassword,
                                 java.lang.String encUserId,
                                 java.io.OutputStream outputStream,
                                 boolean asciiArmor,
                                 boolean withIntegrityCheck)
                          throws java.io.IOException,
                                 PGPException
OpenPGP signs and encrypts a file in one pass.

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // create an instance of the KeyStore
         KeyStore keyStore = new KeyStore("pgp.keystore", "changeit");
         
         // The signing key is usually our private key
         String signKeyUserId = "demo@didisoft.com";
         String signKeyPassword = "changeit";
         
         String encryptionKeyUserId = "Recipient Company ACM";
                 
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputSignedStream = new FileOutputStream("signed.pgp");
         
         // sign and encrypt
         pgp.signAndEncryptStream(dataStream,
                                 "INPUT.txt",
                                 keyStore,  
                                 signKeyUserId, 
                                 signKeyPassword,
                                 encryptionKeyUserId,
                                 outputSignedStream, 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileStream - File data input stream, to be signed
internalFileName - File name string to be associated with the data stream in the produced OpenPGP archive.
keyStore - KeyStore containing the private key for signing and the public key for encryption
signUserId - userId of the private key for signing of the form "name (comment) <email address>"
privateKeyPassword - Private key password
encUserId - userId of the public key for encryption of the form "name (comment) <email address>"
outputStream - Output Stream signed and encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - should integrity check be added to the file.
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
verifyStream(InputStream, KeyStore, OutputStream)

signAndEncryptFileVersion3

public void signAndEncryptFileVersion3(java.lang.String dataFileName,
                                       java.lang.String privateKeyFileName,
                                       java.lang.String privateKeyPassword,
                                       java.lang.String publicKeyFile,
                                       java.lang.String outputFileName,
                                       boolean asciiArmor)
                                throws PGPException,
                                       java.io.IOException
OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with PGP 6.5 and below)

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         
         // sign and encrypt
         pgp.signAndEncryptFileVersion3("INPUT.txt", 
                                 "private_key.asc", 
                                 "key password",
                                 "recipient_key.asc",
                                 "encrypted_output.pgp", 
                                 asciiArmor);
     }
 }         
 

Parameters:
dataFileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path), used for signing
privateKeyPassword - Private key password
publicKeyFile - Public key file (absolute or relative path), used for encryption
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptAndVerifyFile(String, String, String, String, String)

signAndEncryptFileVersion3

public void signAndEncryptFileVersion3(java.lang.String dataFileName,
                                       java.lang.String privateKeyFileName,
                                       java.lang.String privateKeyPassword,
                                       java.lang.String publicKeyFile,
                                       java.lang.String outputFileName,
                                       boolean asciiArmor,
                                       boolean withIntegrityCheck)
                                throws PGPException,
                                       java.io.IOException
OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with PGP 6.5 and below)

(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // sign and encrypt
         pgp.signAndEncryptFileVersion3("INPUT.txt", 
                                 "private_key.asc", 
                                 "key password",
                                 "recipient_key.asc",
                                 "encrypted_output.pgp", 
                                 asciiArmor,
                                 withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileName - File Name to be OpenPGP signed and encrypted (absolute or relative path)
privateKeyFileName - Private Key file (absolute or relative path), used for signing
privateKeyPassword - Private key password
publicKeyFile - Public key file (absolute or relative path), used for encryption
outputFileName - File name of the OpenPGP Signed file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the file. When producing data to be used by old systems (e.g. PGP 6.5) it is better to be false.
Throws:
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptAndVerifyFile(String, String, String, String, String)

signAndEncryptStreamVersion3

public void signAndEncryptStreamVersion3(java.io.InputStream dataFileStream,
                                         java.lang.String internalFileName,
                                         java.io.InputStream privateKeyStream,
                                         java.lang.String privateKeyPassword,
                                         java.io.InputStream publicKeyStream,
                                         java.io.OutputStream outputStream,
                                         boolean asciiArmor)
                                  throws java.io.IOException,
                                         PGPException,
                                         WrongPasswordException
OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with PGP 6.5 and below)
(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";
         
         FileInputStream publicEncryptionKeyStream = new FileInputStream("recipient_key.asc");        
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputStream = new FileOutputStream("encrypted_output.pgp");
         
         // sign and encrypt
         pgp.signAndEncryptStreamVersion3(dataStream,
                                          "INPUT.txt", 
                                          privateKeyStream, 
                                          signKeyPassword,
                                          publicEncryptionKeyStream,
                                          outputStream, 
                                          asciiArmor,
                                          withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileStream - File data input stream, to be signed
internalFileName - File name string to be associated with the data stream in the produced OpenPGP archive.
privateKeyStream - Private Key input stream (used for signing)
privateKeyPassword - Private key password
publicKeyStream - Public Key input stream (used for encryption)
outputStream - Output Stream signed and encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptStreamVersion3

public void signAndEncryptStreamVersion3(java.io.InputStream dataFileStream,
                                         java.lang.String internalFileName,
                                         java.io.InputStream privateKeyStream,
                                         java.lang.String privateKeyPassword,
                                         java.io.InputStream publicKeyStream,
                                         java.io.OutputStream outputStream,
                                         boolean asciiArmor,
                                         boolean withIntegrityCheck)
                                  throws java.io.IOException,
                                         PGPException,
                                         WrongPasswordException
OpenPGP signs and encrypts a file in one pass, using OpenPGP version 3 signature format (compatible with older PGP 2.x systems)
(Note that this is not the same as first encrypt and then sign a file, because in that case a double compression is performed.)
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import java.io.*;
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // should output be ASCII or binary
         boolean asciiArmor = false;
         // should integrity check information be added
         boolean withIntegrityCheck = false;
         
         // The signing key is usually our private key
         FileInputStream privateKeyStream = new FileInputStream("private_key.asc");
         String signKeyPassword = "changeit";
         
         FileInputStream publicEncryptionKeyStream = new FileInputStream("recipient_key.asc");        
         
         FileInputStream dataStream = new FileInputStream("c:\\Data\\INPUT.txt");
         FileOutputStream outputStream = new FileOutputStream("encrypted_output.pgp");
         
         // sign and encrypt
         pgp.signAndEncryptStreamVersion3(dataStream,
                                          "INPUT.txt", 
                                          privateKeyStream, 
                                          signKeyPassword,
                                          publicEncryptionKeyStream,
                                          outputStream, 
                                          asciiArmor,
                                          withIntegrityCheck);
     }
 }         
 

Parameters:
dataFileStream - File data input stream, to be signed
internalFileName - File name string to be associated with the data stream in the produced OpenPGP archive.
privateKeyStream - Private Key input stream (used for signing)
privateKeyPassword - Private key password
publicKeyStream - Public Key input stream (used for encryption)
outputStream - Output Stream signed and encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the file. When producing data to be used by old systems (e.g. PGP 2.x) it is better to be false.
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
java.io.IOException - In case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
NoPrivateKeyFoundException - If the private key source does not contain an OpenPGP private key or is corrupted
WrongPasswordException - If the specified password for the private key is incorrect
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptString

public java.lang.String signAndEncryptString(java.lang.String stringToEncrypt,
                                             java.lang.String privateKeyFileName,
                                             java.lang.String privateKeyPassword,
                                             java.lang.String publicKeyFileName)
                                      throws PGPException,
                                             java.io.IOException
OpenPGP signs and encrypts a String message in one pass
The input String is assumed to be UTF-8 encoded.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptString {
     public static void main(String[] args) throws Exception {
     
         String stringToEncrypt = "the quick brown fox jumps"; 
     
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // The signing key is usually our private key
         String privateKeyFile "c:\\my_private_key.asc";
         String privateKeyPassword = "password";
         
         String publicEncryptionKeyFile = "c:\\recipient_public_key.asc";        
         
         // sign and encrypt
         String signedAndEncryptedString = 
              pgp.signAndEncryptString(stringToEncrypt,
                                       privateKeyFile, 
                                       privateKeyPassword, 
                                       publicEncryptionKeyFile);
     }
 }         
 

Parameters:
stringToEncrypt - String message to be signed and encrypted in one pass
privateKeyFileName - Private Key (used for signing)
privateKeyPassword - Private key password
publicKeyFileName - Public Key (used for encryption)
Returns:
signed and encrypted message
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptStringVersion3

public java.lang.String signAndEncryptStringVersion3(java.lang.String stringToEncrypt,
                                                     java.lang.String privateKeyFileName,
                                                     java.lang.String privateKeyPassword,
                                                     java.lang.String publicKeyFileName)
                                              throws PGPException,
                                                     java.io.IOException
OpenPGP signs and encrypts a String message in one pass with OpenPGP version 3 signatures
The input String is assumed to be UTF-8 encoded.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptStringV3 {
     public static void main(String[] args) throws Exception {
     
         String stringToEncrypt = "the quick brown fox jumps"; 
     
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // The signing key is usually our private key
         String privateKeyFile "c:\\my_private_key.asc";
         String privateKeyPassword = "password";
         
         String publicEncryptionKeyFile = "c:\\recipient_public_key.asc";        
         
         // sign and encrypt
         String signedAndEncryptedString = 
              pgp.signAndEncryptStringVersion3(stringToEncrypt,
                                       privateKeyFile, 
                                       privateKeyPassword, 
                                       publicEncryptionKeyFile);
     }
 }         
 

Parameters:
stringToEncrypt - String message to be signed and encrypted in one pass
privateKeyFileName - Private Key (used for signing)
privateKeyPassword - Private key password
publicKeyFileName - Public Key (used for encryption)
Returns:
signed and encrypted message
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public (encryption) or private (signing) key is expired. Extends PGPException
KeyIsRevokedException - If the public (encryption) or private (signing) key is revoked. Extends PGPException
See Also:
decryptAndVerifyStream(InputStream, InputStream, String, InputStream, OutputStream)

signAndEncryptString

public java.lang.String signAndEncryptString(java.lang.String stringToEncrypt,
                                             java.lang.String privateKeyFileName,
                                             java.lang.String privateKeyPassword,
                                             java.lang.String publicKeyFileName,
                                             java.lang.String charsetName)
                                      throws PGPException,
                                             java.io.IOException
OpenPGP signs and encrypts a String message in one pass
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptString {
     public static void main(String[] args) throws Exception {
     
         String stringToEncrypt = "the quick brown fox jumps"; 
     
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // The signing key is usually our private key
         String privateKeyFile "c:\\my_private_key.asc";
         String privateKeyPassword = "password";
         
         String publicEncryptionKeyFile = "c:\\recipient_public_key.asc";        
         
         String charsetCode = "UTF-8";
         
         // sign and encrypt
         String signedAndEncryptedString = 
              pgp.signAndEncryptString(stringToEncrypt,
                                       privateKeyFile, 
                                       privateKeyPassword, 
                                       publicEncryptionKeyFile,
                                       charsetCode);
     }
 }         
 

Parameters:
stringToEncrypt - String message to be signed and encrypted in one pass
privateKeyFileName - Private Key (used for signing)
privateKeyPassword - Private key password
publicKeyFileName - Public Key (used for encryption)
charsetName - the name of a supported charset
Returns:
signed and encrypted message
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

signAndEncryptStringVersion3

public java.lang.String signAndEncryptStringVersion3(java.lang.String stringToEncrypt,
                                                     java.lang.String privateKeyFileName,
                                                     java.lang.String privateKeyPassword,
                                                     java.lang.String publicKeyFileName,
                                                     java.lang.String charsetName)
                                              throws PGPException,
                                                     java.io.IOException
OpenPGP signs and encrypts a String message in one pass creating OpenPGP version 3 signatures
Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
Hashing algorithm used is the one specified with setHash(HashAlgorithm)

Example:
 import com.didisoft.pgp.PGPLib;
 
 public class SignAndEncryptStringV3 {
     public static void main(String[] args) throws Exception {
     
         String stringToEncrypt = "the quick brown fox jumps"; 
     
         // create an instance of the library
         PGPLib pgp = new PGPLib();
              
         // The signing key is usually our private key
         String privateKeyFile "c:\\my_private_key.asc";
         String privateKeyPassword = "password";
         
         String publicEncryptionKeyFile = "c:\\recipient_public_key.asc";        
         
         String charsetCode = "UTF-8";
         
         // sign and encrypt
         String signedAndEncryptedString = 
              pgp.signAndEncryptStringVersion3(stringToEncrypt,
                                       privateKeyFile, 
                                       privateKeyPassword, 
                                       publicEncryptionKeyFile,
                                       charsetCode);
     }
 }         
 

Parameters:
stringToEncrypt - String message to be signed and encrypted in one pass
privateKeyFileName - Private Key (used for signing)
privateKeyPassword - Private key password
publicKeyFileName - Public Key (used for encryption)
charsetName - the name of a supported charset
Returns:
signed and encrypted message
Throws:
java.io.IOException - If a file/stream operation throws an exception
PGPException - OpenPGP encryption error
NoPrivateKeyFoundException - If privateKeyFileName does not contain an OpenPGP private key. Extends PGPException
NoPublicKeyFoundException - If publicKeyFileName does not contain an OpenPGP public key. Extends PGPException
WrongPasswordException - If the private key password is incorrect. Extends PGPException
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

decryptStream

public java.lang.String decryptStream(java.io.InputStream encryptedStream,
                                      java.io.InputStream privateKeyStream,
                                      java.lang.String privateKeyPassword,
                                      java.io.OutputStream outputStream)
                               throws PGPException,
                                      java.io.IOException
Decrypts an OpenPGP encrypted stream using Private key input stream.

Parameters:
encryptedStream - Input stream to be decrypted
privateKeyStream - Private key input stream
privateKeyPassword - Private key password
outputStream - Output stream for the decrypted contents
Returns:
Original File Name stored in the OpenPGP Archive
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptStream(InputStream, String, InputStream, OutputStream, boolean, boolean)

decryptStreamTo

public java.lang.String[] decryptStreamTo(java.io.InputStream encryptedStream,
                                          java.io.InputStream privateKeyStream,
                                          java.lang.String privateKeyPassword,
                                          java.lang.String outputFolder)
                                   throws PGPException,
                                          java.io.IOException
Decrypts an OpenPGP encrypted stream to a specified folder. This method supports multiple file PGP archives (created with PGP Desktop 9+ and compatible software)

Parameters:
encryptedStream - Input stream to be decrypted
privateKeyStream - Private key input stream
privateKeyPassword - Private key password
outputFolder - Output folder where the decrypted file(s) will be stored
Returns:
Array of absolute paths of the decrypted file(s).
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFiles(String[], String[], String, boolean, boolean)

decryptStreamTo

public java.lang.String[] decryptStreamTo(java.io.InputStream encryptedStream,
                                          KeyStore keyStore,
                                          java.lang.String privateKeyPassword,
                                          java.lang.String outputFolder)
                                   throws PGPException,
                                          java.io.IOException
Decrypts an OpenPGP encrypted stream to a specified folder. This method supports multiple file PGP archives (created with PGP Desktop 9+ and compatible software)

Parameters:
encryptedStream - Input stream to be decrypted
keyStore - KeyStore containing the decryption private key
privateKeyPassword - Private key password
outputFolder - Output folder where the decrypted file(s) will be stored
Returns:
Array of absolute paths of the decrypted file(s).
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFiles(String[], KeyStore, String[], String, boolean, boolean), encryptFiles(String[], KeyStore, long[], String, boolean, boolean)

decryptStream

public java.lang.String decryptStream(java.io.InputStream encryptedStream,
                                      KeyStore pgpKeyStore,
                                      java.lang.String privateKeyPassword,
                                      java.io.OutputStream outputStream)
                               throws PGPException,
                                      java.io.IOException
Decrypts an OpenPGP encrypted stream using Private key input stream.

Parameters:
encryptedStream - Input Stream to be decrypted
pgpKeyStore - Instance of KeyStore, that should contain the Private key to decrypt encryptedStream
privateKeyPassword - Private key password
outputStream - Output Stream for the decrypted contents
Returns:
Original file name stored in the OpenPGP Archive
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptStream(InputStream, String, KeyStore, String, OutputStream, boolean, boolean), encryptStream(InputStream, String, KeyStore, long, OutputStream, boolean, boolean)

decryptFile

public java.lang.String decryptFile(java.lang.String encryptedFileName,
                                    KeyStore pgpKeyStore,
                                    java.lang.String privateKeyPassword,
                                    java.lang.String outputFileName)
                             throws PGPException,
                                    java.io.IOException
Decrypts an OpenPGP encrypted file using key from a OpenPGP key store.

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
pgpKeyStore - Key store object. See KeyStore
privateKeyPassword - Private key password
outputFileName - File name of the Output decrypted file (absolute or relative path)
Returns:
The original file name of the encrypted data in this OpenPGP archive
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFile(String, KeyStore, String, String), encryptFile(String, KeyStore, long, String)

decryptFile

public java.lang.String decryptFile(java.lang.String encryptedFileName,
                                    java.lang.String privateKeyFileName,
                                    java.lang.String privateKeyPassword,
                                    java.lang.String outputFileName)
                             throws PGPException,
                                    java.io.IOException
Decrypts an OpenPGP encrypted file using Private key file.

Example:
 import com.didisoft.pgp.*;
 
 public class DecryptFile {
     public static void main(String[] args) throws Exception{
         // initialize the library instance
         PGPLib pgp = new PGPLib();
         
         String privateKeyFile = "private.key";
         String privateKeyPass = "changeit";
 
         // The decrypt method returns the original name of the file
         // that was encrypted. We can use it afterwards,
         // to rename OUTPUT.txt      
         String originalFileName = pgp.decryptFile("encrypted.pgp", 
                                                 privateKeyFile, 
                                                 privateKeyPass, 
                                                 "OUTPUT.txt");
     }
 

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
privateKeyFileName - Private Key file name (absolute or relative path)
privateKeyPassword - Private key password
outputFileName - File name of the Output decrypted file (absolute or relative path).
Returns:
File name of the decrypted file. null if an error has occurred.
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFile(String, String, String, boolean, boolean)

decryptFilePBE

public java.lang.String decryptFilePBE(java.lang.String encryptedFileName,
                                       java.lang.String decryptionPassword,
                                       java.lang.String outputFileName)
                                throws PGPException,
                                       java.io.IOException
Decrypts an OpenPGP file that was encrypted with password (PBE, symmetric key encrypted).

Example:
 import com.didisoft.pgp.*;
 
 public class DecryptFilePBE {
     public static void main(String[] args) throws Exception{
         // initialize the library instance
         PGPLib pgp = new PGPLib();
         
         // The decrypt method returns the original name of the file
         // that was encrypted. We can use it afterwards,
         // to rename OUTPUT.txt      
         String originalFileName = pgp.decryptFile("encrypted.pgp", 
                                                 "decryption password", 
                                                 "OUTPUT.txt");
     }
 }    
 

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
decryptionPassword - Password used for symmetric encryption of the input file
outputFileName - File name of the Output decrypted file (absolute or relative path).
Returns:
The original file name of the encrypted data in this OpenPGP archive
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
WrongPasswordException - if the password is misspelled.
FileIsEncryptedException - if the encrypted input is encrypted with an OpenPGP key only
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFilePBE(String, String, String, String, boolean, boolean)

decryptFileTo

public java.lang.String[] decryptFileTo(java.lang.String encryptedFileName,
                                        java.lang.String privateKeyFileName,
                                        java.lang.String privateKeyPassword,
                                        java.lang.String outputFolder)
                                 throws PGPException,
                                        java.io.IOException
Decrypts the content of an OpenPGP encrypted file into a folder.

Example usage:

 import com.didisoft.pgp.*;
 
 public class DecryptFileTo {
     public static void main(String[] args) throws Exception{
         // initialize the library instance
         PGPLib pgp = new PGPLib();
         
         String privateKeyFile = "private.key";
         String privateKeyPass = "changeit";
 
         // The decrypt method returns array with decrypted file paths
         String[] files = pgp.decryptFileTo("encrypted.pgp", 
                                           privateKeyFile, 
                                           privateKeyPass, 
                                           "c:\\Temp\\");
                                                 
         for (int i=0; i

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
privateKeyFileName - Private Key file name (absolute or relative path)
privateKeyPassword - Private key password
outputFolder - Folder path (absolute or relative path) where the decrypted file(s) will be stored
Returns:
Array of file paths of the decrypted file(s)
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFiles(String[], String[], String, boolean, boolean)

decryptFileTo

public java.lang.String[] decryptFileTo(java.lang.String encryptedFileName,
                                        KeyStore keyStore,
                                        java.lang.String privateKeyPassword,
                                        java.lang.String outputFolder)
                                 throws PGPException,
                                        java.io.IOException
Decrypts the content of an OpenPGP encrypted file into a folder.

Example usage:

 import com.didisoft.pgp.*;
 
 public class DecryptFileTo {
     public static void main(String[] args) throws Exception{
         // initialize the library instance
         PGPLib pgp = new PGPLib();
         
         KeyStore keyStore = new KeyStore("my.keystore", "keystore pasword");
         String privateKeyPass = "changeit";
 
         // The decrypt method returns array with decrypted file paths
         String[] files = pgp.decryptFileTo("encrypted.pgp", 
                                           keyStore, 
                                           privateKeyPass, 
                                           "c:\\Temp\\");
                                                 
         for (int i=0; i

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
keyStore - KeyStore object containing the private decryption key
privateKeyPassword - Private key password
outputFolder - Folder path (absolute or relative path) where the decrypted file(s) will be stored
Returns:
Array of file paths of the decrypted file(s)
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFiles(String[], KeyStore, String[], String, boolean, boolean)

decryptFile

public java.lang.String decryptFile(java.lang.String encryptedFileName,
                                    java.io.InputStream privateKeyStream,
                                    java.lang.String privateKeyPassword,
                                    java.lang.String outputFileName)
                             throws PGPException,
                                    java.io.IOException
Decrypts an OpenPGP encrypted file using Private key input stream.

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
privateKeyStream - Private Key input stream
privateKeyPassword - Private key password
outputFileName - File name of the Output decrypted file (absolute or relative path).
Returns:
The original file name of the encrypted data in this OpenPGP archive
Throws:
java.io.IOException - if an I/O operation throws an exception
PGPException - if a problem has occurred while decrypting data
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
encryptFile(String, String, String, boolean, boolean)

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          long streamLength,
                          java.lang.String publicKeyFileName,
                          java.io.OutputStream out,
                          boolean asciiArmor)
                   throws PGPException,
                          java.io.IOException
OpenPGP encrypts stream using the first available public key from a key ring file.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
streamLength - Length of stream to be encrypted
publicKeyFileName - Key ring file name (absolute or relative path)
out - Output Stream OpenPGP encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
Since:
1.1
See Also:
decryptStream(InputStream, InputStream, String, OutputStream)

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          long streamLength,
                          java.lang.String publicKeyFileName,
                          java.io.OutputStream out,
                          boolean asciiArmor,
                          boolean withIntegrityCheck)
                   throws PGPException,
                          java.io.IOException
OpenPGP encrypts stream using the first available public key from a key ring file.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
streamLength - Length of stream to be encrypted
publicKeyFileName - Key ring file name (absolute or relative path)
out - Output Stream OpenPGP encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptStream(InputStream, InputStream, String, OutputStream)

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          KeyStore keyStore,
                          java.lang.String userId,
                          java.io.OutputStream out,
                          boolean asciiArmor,
                          boolean withIntegrityCheck)
                   throws PGPException,
                          java.io.IOException
OpenPGP Encrypts Input Stream using a Public key located in a KeyStore

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
keyStore - Key store object. See KeyStore
userId - User ID of the form "name (comment) <email address>" (can be seen using KeyStore.listKeys())
out - Output Stream OpenPGP encrypted
asciiArmor - if true output is in ASCII armored format, when false output is in binary format. For large files it is recommended to be false (binary format)
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptStream(InputStream, KeyStore, String, OutputStream)

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          KeyStore keyStore,
                          long keyId,
                          java.io.OutputStream out,
                          boolean asciiArmor,
                          boolean withIntegrityCheck)
                   throws PGPException,
                          java.io.IOException
OpenPGP encrypts input stream using a recipient public key located in a KeyStore

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
keyStore - Key store object. See KeyStore
keyId - Key Id of the Public Key
out - Output Stream OpenPGP encrypted
asciiArmor - Should file be in Armored mode
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          long streamLength,
                          java.io.InputStream publicKeyStream,
                          java.io.OutputStream out,
                          boolean asciiArmor,
                          boolean withIntegrityCheck)
                   throws PGPException,
                          java.io.IOException
OpenPGP encrypts an input stream using the first available public key supplied as an input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
streamLength - Length of stream to be encrypted
publicKeyStream - Input stream from the Public key
out - Output Stream OpenPGP encrypted
asciiArmor - Should file be in Armored mode
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          java.io.InputStream publicKeyStream,
                          java.io.OutputStream outputStream,
                          boolean asciiArmor,
                          boolean withIntegrityCheck)
                   throws PGPException,
                          java.io.IOException
OpenPGP encrypts an input stream using the first available Public key from a Key ring input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
publicKeyStream - Input stream from the Public key
outputStream - Output OpenPGP encrypted stream
asciiArmor - If true, output is in ASCII armored mode, when false in binary. For large files it is recommended to be false (binary format)
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptStream

public void encryptStream(java.io.InputStream dataStream,
                          java.lang.String fileName,
                          PGPKeyPair publicKey,
                          java.io.OutputStream outputStream,
                          boolean asciiArmor,
                          boolean withIntegrityCheck)
                   throws PGPException,
                          java.io.IOException
OpenPGP encrypts an input stream using the first available Public key from a Key ring input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataStream - Input Stream to be encrypted
fileName - File Name string to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
publicKeyStream - Input stream from the Public key
outputStream - Output OpenPGP encrypted stream
asciiArmor - If true, output is in ASCII armored mode, when false in binary. For large files it is recommended to be false (binary format)
withIntegrityCheck - Should integrity check be added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptStreamPBE

public void encryptStreamPBE(java.io.InputStream dataStream,
                             java.lang.String fileNameLabel,
                             java.lang.String password,
                             java.io.OutputStream out,
                             boolean asciiArmor,
                             boolean withIntegrityCheck)
                      throws PGPException,
                             java.io.IOException
Encrypts an input stream with a password based OpenPGP encryption (PBE)

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

The example below illustrates the usage of this method:
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 import com.didisoft.pgp.PGPLib;
 
 public class EncryptStreamPBE {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
 
         // is output ASCII or binary
         boolean asciiArmor = true;
         // should integrity check information be added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;
 
         // obtain the streams
         InputStream inStream = new FileInputStream("DataFiles/INPUT.txt");
         OutputStream outStream = new FileOutputStream("DataFiles/PBEencrypted.pgp");
 
         // Here "INPUT.txt" is just a label to be associated with the data OpenPGP packet
         // The data packet is a mandatory component of the pgp file internals and holds:
         // file name label, timestamp, and the encrypted data
         pgp.encryptStreamPBE(inStream, "INPUT.txt", "encryption password", outStream, asciiArmor, withIntegrityCheck);
     }
 }
 

Parameters:
dataStream - Input Stream to be encrypted
fileNameLabel - File Name label to be stored in the OpenPGP file (OpenPGP archive stores information for the file name being encrypted)
out - Output stream where the encrypted content will be stored
asciiArmor - If true, output is in ASCII armored mode, when false in binary. For large files it is recommended to be false (binary format)
withIntegrityCheck - Should integrity check be added to the file.
Throws:
PGPException - PGP encryption error
java.io.IOException - if an error occurs reading dataStream

encryptFilePBE

public void encryptFilePBE(java.lang.String dataFileName,
                           java.lang.String publicKeyFileName,
                           java.lang.String alternativePassword,
                           java.lang.String outputFileName,
                           boolean asciiArmor,
                           boolean withIntegrityCheck)
                    throws PGPException,
                           java.io.IOException
Encrypts a file with a public key and a passphrase.
The passphrase can be used to decrypt the file if the corresponding private key is lost.

Equivalent GnuPG command:
gpg -r [public key user id] -c -e [dataFileName]

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
publicKeyFileName - Key ring file name (absolute or relative path)
alternativePassword - Additional passphrase that can be used to decrypt the file instead of using the private key
outputFileName - File name of the Output encrypted file (absolute or relative path)
asciiArmor - If true, output is in ASCII armored mode, when false in binary. For large files it is recommended to be false (binary format)
withIntegrityCheck - Should integrity check be added to the file.
Throws:
PGPException - OpenPGP encryption error
java.io.IOException - in case of an I/O error
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFilePBE

public void encryptFilePBE(java.lang.String dataFileName,
                           java.lang.String password,
                           java.lang.String outputFileName,
                           boolean asciiArmor,
                           boolean withIntegrityCheck)
                    throws PGPException,
                           java.io.IOException
Encrypts a file with a passphrase.
The same passphrase is used to decrypt the file

Equivalent GnuPG command:
gpg -c -e [dataFileName]

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

The example below illustrates how the usage of this method:
 import com.didisoft.pgp.*;
 
 public class EncryptFilePBE {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
        
         // if true the output file will be in ASCII armored format,
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = false;
                
         pgp.encryptFilePBE("INPUT.txt",
                         "password",
                         "PBEencrypted.pgp",
                         asciiArmor,
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
password - Passphrase used to encrypt and decrypt the file
outputFileName - File name of the Output encrypted file (absolute or relative path)
asciiArmor - If true, output is in ASCII armored mode, when false in binary. For large files it is recommended to be false (binary format)
withIntegrityCheck - Should integrity check be added to the file.
Throws:
PGPException - OpenPGP encryption error
java.io.IOException - in case of an I/O error

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        java.lang.String publicKeyFileName,
                        java.lang.String outputFileName,
                        boolean asciiArmor)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using the public key of the recipient.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise in binary format
         boolean asciiArmor = true;
                 
         pgp.encryptFile("INPUT.txt", 
                         "recipient_key.asc", 
                         "encrypted.pgp", 
                         asciiArmor);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
publicKeyFileName - Recipient public key file name (absolute or relative path)
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format. For large files it is recommended to be false (binary format)
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
Since:
2.5.6

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        java.lang.String publicKeyFileName,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using the public key of the recipient.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;
                 
         pgp.encryptFile("INPUT.txt", 
                         "recipient_key.asc", 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
publicKeyFileName - Recipient public key file name (absolute or relative path)
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format. For large files it is recommended to be false (binary format)
withIntegrityCheck - if true additional integrity check is added to the file. Set to false for compatibility with older versions of PGP such as 6.5.8.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        java.lang.String[] publicKeysFileNames,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts a file for multiple recipients.


Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class EncryptFileForMultipleRecipients {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;

         String[] recipientsPublicKeys = {"public_key1.asc", 
                                       "public_key2.asc",
                                       "public_key3.asc"};        
                 
         pgp.encryptFile("INPUT.txt", 
                         recipientsPublicKeys, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
publicKeysFileNames - Array of recipients' public keys file names (absolute or relative paths)
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        KeyStore keyStore,
                        java.lang.String[] recipientsUserIds,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts a file for multiple recipients.


Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:

 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;

         // initialize the KeyStore  
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         String[] recipientsUserIds = {"recipient1@company.com", 
                                       "John Doe",
                                       "Clearing House"};        
                 
         pgp.encryptFile("INPUT.txt", 
                         keyStore,
                         recipientsUserIds, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - KeyStore holding recipients' public keys
recipientsUserIds - Array of recipients' public keys User Id's
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        KeyStore keyStore,
                        long[] recipientsKeyIds,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts a file for multiple recipients.


Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:
 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;

         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         long[] recipientsKeyIds = {15432123891819, 
                                    keyStore.getKeyIdForUserId("Company ACM"),
                                    keyStore.getKeyIdForKeyIdHex("79AEAE03")};        
                 
         pgp.encryptFile("INPUT.txt", 
                         keyStore,
                         recipientsKeyIds, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - KeyStore holding recipients' public keys
recipientsKeyIds - Array of recipients' public keys Key Id's
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFiles

public void encryptFiles(java.lang.String[] dataFileNames,
                         java.lang.String publicKeyFileName,
                         java.lang.String outputFileName,
                         boolean asciiArmor,
                         boolean withIntegrityCheck)
                  throws PGPException,
                         java.io.IOException
OpenPGP encrypts multiple files into one OpenPGP archive.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class EncryptFilesDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;

         String[] inputFiles = {"INPUT1.txt", 
                                "INPUT2.txt",
                                "INPUT3.txt"};        

         String recipientPublicKey = "public_key1.asc";        
                 
         pgp.encryptFiles(inputFiles, 
                         recipientPublicKey, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileNames - File names to be encrypted (absolute or relative path)
publicKeyFileName - Recipients public key file name (absolute or relative path)
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFiles

public void encryptFiles(java.lang.String[] dataFileNames,
                         java.lang.String[] publicKeysFileNames,
                         java.lang.String outputFileName,
                         boolean asciiArmor,
                         boolean withIntegrityCheck)
                  throws PGPException,
                         java.io.IOException
OpenPGP encrypts multiple files into one OpenPGP archive.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class EncryptFilesDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         // set to false for compatibility with older versions of PGP such as 6.5.8.
         boolean withIntegrityCheck = true;

         String[] inputFiles = {"INPUT1.txt", 
                                "INPUT2.txt",
                                "INPUT3.txt"};        

         String[] recipientsPublicKeys = {"public_key1.asc", 
                                       "public_key2.asc",
                                       "public_key3.asc"};        
                 
                 
         pgp.encryptFiles(inputFiles, 
                         recipientsPublicKeys, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileNames - File names to be encrypted (absolute or relative path)
publicKeysFileNames - Array of recipients' public keys file names (absolute or relative path)
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFiles

public void encryptFiles(java.lang.String[] dataFileNames,
                         KeyStore keyStore,
                         java.lang.String[] recipientsUserIds,
                         java.lang.String outputFileName,
                         boolean asciiArmor,
                         boolean withIntegrityCheck)
                  throws PGPException,
                         java.io.IOException
OpenPGP encrypts multiple files into one OpenPGP archive

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:

 import com.didisoft.pgp.*;
 
 public class EncryptFilesDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         boolean withIntegrityCheck = true;

         String[] inputFiles = {"INPUT1.txt", 
                                "INPUT2.txt",
                                "INPUT3.txt"};        

         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         String[] recipientsUserIds = {"recipient1@company.com", 
                                       "John Doe",
                                       "Clearing House"};        
                 
         pgp.encryptFiles(inputFiles, 
                         keyStore,  
                         recipientsUserIds, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileNames - File names to be encrypted (absolute or relative path)
keyStore - KeyStore containing the recipients public keys
recipientsUserIds - Array of recipients' public keys User Id's
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFiles

public void encryptFiles(java.lang.String[] dataFileNames,
                         KeyStore keyStore,
                         long[] recipientsKeyIds,
                         java.lang.String outputFileName,
                         boolean asciiArmor,
                         boolean withIntegrityCheck)
                  throws PGPException,
                         java.io.IOException
OpenPGP encrypts multiple files into one OpenPGP archive

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example usage:

 import com.didisoft.pgp.*;
 
 public class EncryptFilesDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         boolean withIntegrityCheck = true;

         String[] inputFiles = {"INPUT1.txt", 
                                "INPUT2.txt",
                                "INPUT3.txt"};        

         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         long[] recipientsKeyIds = {15432123891819, 
                                    keyStore.getKeyIdForUserId("Company ACM"),
                                    keyStore.getKeyIdForKeyIdHex("79AEAE03")};        
                 
         pgp.encryptFiles(inputFiles, 
                         keyStore,  
                         recipientsUserIds, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileNames - File names to be encrypted (absolute or relative path)
keyStore - KeyStore containing the recipients public keys
recipientsKeyIds - Array of recipients' public keys Key Id's
outputFileName - File name of the output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format.
withIntegrityCheck - if true additional integrity check is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        java.io.InputStream publicKeyStream,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using the first available public key from a key ring input stream

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:

 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         boolean withIntegrityCheck = true;
         
         FileInputStream keyStream = null;
         try {        
           keyStream = new FileInputStream("recipient_key.asc");        
           pgp.encryptFile("INPUT.txt", 
                         keyStream, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
        } finally {
           if (keyStream != null)
               keyStream.close();
        }                 
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
publicKeyStream - Input stream from the Public key, caller method is responsible for closing it
outputFileName - File name of the Output encrypted file (absolute or relative path)
asciiArmor - if true output is in ASCII armored format, otherwise is in binary format. For large files it is recommended to be false (binary format)
withIntegrityCheck - if true integrity check information is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException

encryptFileByUserId

public int encryptFileByUserId(KeyStore keyStore,
                               java.lang.String dataFileName,
                               java.lang.String userID,
                               java.lang.String outputFileName)
Deprecated. Use instead

OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store object. See KeyStore
userID - User ID of the form "name (comment) <email address>" (can be seen using KeyStore.listKeys())
outputFileName - File name of the Output encrypted file (absolute or relative path)
Returns:
0 if successfully encrypted, 1 if an error has occurred

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        KeyStore keyStore,
                        java.lang.String userId,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.

Example:
 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         boolean withIntegrityCheck = true;

         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         String recipientUserId = "recipient@company.com"; 
                 
         pgp.encryptFile("INPUT.txt", 
                         keyStore,
                         recipientUserId, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store object. See KeyStore
userId - Recipient public key User Id of the form "name (comment) <email address>"
outputFileName - File name of the Output encrypted file (absolute or relative path)
asciiArmor - if true the output file will be in ASCII format, if false the output file will be in binary format
withIntegrityCheck - if true integrity check information is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptFile(String, KeyStore, String, String)

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        KeyStore keyStore,
                        java.lang.String userId,
                        java.lang.String outputFileName)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm) if supported by the public key, otherwise the first supported by the key algorithm is used.
The output file is in binary format and with no integrity check information. This format is compatible with PGP 2.6.x.

Example:
 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         // initialize the KeyStore
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         String recipientUserId = "recipient@company.com"; 
                 
         pgp.encryptFile("INPUT.txt", 
                         keyStore,
                         recipientUserId, 
                         "encrypted.pgp");
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store object. See KeyStore
userId - User ID of the form "name (comment) <email address>"
outputFileName - File name of the Output encrypted file (absolute or relative path)
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptFile(String, KeyStore, String, String)

encryptFileByKeyId

public int encryptFileByKeyId(KeyStore keyStore,
                              java.lang.String dataFileName,
                              java.lang.String keyIdHex,
                              java.lang.String outputFileName)
Deprecated. Use instead

OpenPGP Encrypts given file using specified Public Key, stored in specified OpenPGP key store.

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store object. See KeyStore
keyIdHex - Key Id of the Public Key in Hex format
outputFileName - File name of the Output encrypted file (absolute or relative path)

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        KeyStore keyStore,
                        long keyId,
                        java.lang.String outputFileName,
                        boolean asciiArmor,
                        boolean withIntegrityCheck)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)

Example:
 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // if true the output file will be in ASCII armored format, 
         // otherwise will be in binary format
         boolean asciiArmor = true;
         // if true additional integrity check information is added
         boolean withIntegrityCheck = true;

         // initialize the KeyStore  
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         long recipientKeyId = keyStore.getKeyIdForKeyIdHex("79AEAE03");        
                 
         pgp.encryptFile("INPUT.txt", 
                         keyStore,
                         recipientKeyId, 
                         "encrypted.pgp", 
                         asciiArmor, 
                         withIntegrityCheck);
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store object. See KeyStore
keyId - Key Id of the recipient public key
outputFileName - File name of the encrypted output file (absolute or relative path)
asciiArmor - if true the output file will be in ASCII format, if false the output file will be in binary format
withIntegrityCheck - if true integrity check information is added to the file.
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptFile(String, KeyStore, String, String)

encryptFile

public void encryptFile(java.lang.String dataFileName,
                        KeyStore keyStore,
                        long keyId,
                        java.lang.String outputFileName)
                 throws PGPException,
                        java.io.IOException
OpenPGP encrypts given file using specified public key, stored in specified OpenPGP key store.

Compression algorithm used is the one specified with setCompression(CompressionAlgorithm)
Symmetric cipher algorithm used is the one specified with setCypher(CypherAlgorithm)
The output file is in binary format and with no integrity check information. This format is compatible with PGP 2.6.x.

Example:
 import com.didisoft.pgp.*;
 
 public class EncryptFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // initialize the KeyStore
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  

         long recipientKeyId = keyStore.getKeyIdForKeyIdHex("79AEAE03");        
                 
         pgp.encryptFile("INPUT.txt", 
                         keyStore,
                         recipientKeyId, 
                         "encrypted.pgp");
     }
 }
 

Parameters:
dataFileName - File name to be encrypted (absolute or relative path)
keyStore - Key store object. See KeyStore
keyId - Key Id of the Public Key
outputFileName - File name of the Output encrypted file (absolute or relative path)
Throws:
java.io.IOException - in case of an I/O error
PGPException - OpenPGP encryption error
NoPublicKeyFoundException - if the public key source does not contain a public key or is corrupted
KeyIsExpiredException - If the public key is expired. Extends PGPException
KeyIsRevokedException - If the public key is revoked. Extends PGPException
See Also:
decryptFile(String, String, String, String)

verifyFile

public boolean verifyFile(java.lang.String dataFileName,
                          java.lang.String publicKeyFileName,
                          java.lang.String outputFileName)
                   throws PGPException,
                          FileIsEncryptedException,
                          java.io.IOException
Verifies the incoming file as being correctly signed.

Example:
 import com.didisoft.pgp.*;
 
 public class VerifyFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // verify and extract the signed content
         boolean validSignature = pgp.verifyFile("signed.pgp", "sender_public_key.asc", "OUTPUT.txt");      
         if (validSignature) {
             System.out.println("Signature is valid.");
         } else {
             System.out.println("!Signature is invalid!");
         }
     }
 }
 

Parameters:
dataFileName - File name to be verified for a valid OpenPGP signature (absolute or relative path)
publicKeyFileName - Sender public key file name (absolute or relative path)
outputFileName - Output file name, extracted from the signed file (absolute or relative path)
Returns:
true if the file is signed from the sender who owns the specified public key, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signFile(String, String, String, String, boolean), signFileVersion3(String, String, String, String, boolean)

verifyFile

public boolean verifyFile(java.lang.String dataFileName,
                          KeyStore keyStore,
                          java.lang.String outputFileName)
                   throws PGPException,
                          FileIsEncryptedException,
                          java.io.IOException
Verifies the incoming file as being correctly signed.

Example:
 import com.didisoft.pgp.*;
 
 public class VerifyFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         // initialize the KeyStore
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");
           
         // verify and extract the signed content
         boolean validSignature = pgp.verifyFile("signed.pgp", keyStore, "OUTPUT.txt");      
         if (validSignature) {
             System.out.println("Signature is valid.");
         } else {
             System.out.println("!Signature is invalid!");
         }
     }
 }
 

Parameters:
dataFileName - File name to be verified for a valid OpenPGP signature (absolute or relative path)
keyStore - KeyStore object containing the sender public key that will be used for verification
outputFileName - Output file name, extracted from the signed file (absolute or relative path)
Returns:
true if the file is signed from a sender with public key in this KeyStore, false if no key in the KeyStore matches the signature
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signFile(String, KeyStore, String, String, String, boolean)

verifyFile

public boolean verifyFile(java.lang.String dataFileName,
                          java.lang.String publicKeyFileName)
                   throws PGPException,
                          FileIsEncryptedException,
                          java.io.IOException
Verifies the incoming file as being correctly signed.

Example:
 import com.didisoft.pgp.*;
 
 public class VerifyFile {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         // initialize the KeyStore
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");
           
         // verify and extract the signed content
         boolean validSignature = pgp.verifyFile("signed.pgp", "sender_public_key.asc");      
         if (validSignature) {
             System.out.println("Signature is valid.");
         } else {
             System.out.println("!Signature is invalid!");
         }
     }
 }
 

Parameters:
dataFileName - File name to be verified for a valid OpenPGP signature (absolute or relative path)
publicKeyFileName - Sender public key file name (absolute or relative path)
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signFile(String, String, String, String, boolean)

verifyFile

public boolean verifyFile(java.io.InputStream dataFileStream,
                          java.io.InputStream publicKeyStream)
                   throws PGPException,
                          java.io.IOException
Deprecated. Use verifyStream(InputStream, InputStream)

Verifies the incoming in stream as being correctly signed.

Parameters:
dataFileStream - Input stream from the File to be verified
publicKeyStream - Input stream from the Public key
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signStream(InputStream, String, InputStream, String, OutputStream, boolean)

verifyStream

public boolean verifyStream(java.io.InputStream dataFileStream,
                            java.io.InputStream publicKeyStream)
                     throws PGPException,
                            FileIsEncryptedException,
                            java.io.IOException
Verifies the incoming stream as being correctly signed.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class VerifyStreamDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         InputStream dataStream = new FileInputStream("signed.pgp");
         InputStream keyStream = new FileInputStream("sender_public_key.asc");
         
         try {
           // verify and extract the signed content
           boolean validSignature = pgp.verifyStream(dataStream, keyStream);      
           if (validSignature) {
             System.out.println("Signature is valid.");
           } else {
             System.out.println("!Signature is invalid!");
           }
         } finally {
           dataStream.close();
           keyStream.close();
         }
     }
 }
 

Parameters:
dataFileStream - Input stream from the file to be verified
publicKeyStream - Input stream from the sender public key
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signStream(InputStream, String, InputStream, String, OutputStream, boolean)

verifyStream

public boolean verifyStream(java.io.InputStream dataFileStream,
                            java.io.InputStream publicKeyStream,
                            java.io.OutputStream outputFileStream)
                     throws PGPException,
                            FileIsEncryptedException,
                            java.io.IOException
Verifies the incoming stream as being correctly signed.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class VerifyStreamDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         InputStream dataStream = new FileInputStream("signed.pgp");
         InputStream keyStream = new FileInputStream("sender_public_key.asc");
         OutputStream outputStream = new FileOutputStream("OUTPUT.txt");
         
         try {
           // verify and extract the signed content
           boolean validSignature = pgp.verifyStream(dataStream, keyStream, outputStream);      
           if (validSignature) {
             System.out.println("Signature is valid.");
           } else {
             System.out.println("!Signature is invalid!");
           }
         } finally {
           dataStream.close();
           keyStream.close();
           outputStream.close();
         }
     }
 }
 

Parameters:
dataFileStream - Input stream from the File to be verified
publicKeyStream - Input stream from the Public key
outputFileStream - Output Stream for the uncompressed signed content
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signStream(InputStream, String, InputStream, String, OutputStream, boolean)

verifyStream

public boolean verifyStream(java.io.InputStream dataFileStream,
                            KeyStore keyStore,
                            java.io.OutputStream outputFileStream)
                     throws PGPException,
                            FileIsEncryptedException,
                            java.io.IOException
Verifies the incoming stream as being correctly signed.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class VerifyStreamDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         InputStream dataStream = new FileInputStream("signed.pgp");
         OutputStream outputStream = new FileOutputStream("OUTPUT.txt");

         // initialize the KeyStore  
         KeyStore keyStore = new KeyStore("mykeys.keystore", "password");  
         
         try {
           // verify and extract the signed content
           boolean validSignature = pgp.verifyStream(dataStream, keyStore, outputStream);      
           if (validSignature) {
             System.out.println("Signature is valid.");
           } else {
             System.out.println("!Signature is invalid!");
           }
         } finally {
           dataStream.close();
           keyStream.close();
           outputStream.close();
         }
     }
 }
 

Parameters:
dataFileStream - Input stream from the File to be verified
keyStore - Key store instance containing the sender public key for verification
outputFileStream - Output Stream for the uncompressed signed content
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature
See Also:
signStream(InputStream, String, InputStream, String, OutputStream, boolean)

verifyString

public boolean verifyString(java.lang.String message,
                            java.lang.String publicKeyFileName,
                            java.lang.StringBuffer decryptedString)
                     throws java.io.IOException,
                            PGPException,
                            FileIsEncryptedException
Verifies an OpenPGP signed only message.

Note: The embedded plain text message is converted into String assuming it is UTF-8 encoded. Use the overloaded message with charset parameter if it uses different encoding.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class VerifyStringDemo {
     public static void main(String[] args) throws Exception {
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         String openpgpMessage = ""; // Fill here the OpenPGP signed message
         StringBuffer decryptedMessage = new StringBuffer();

         // The public key of the sender, used to verify the message  
         String publicKeyFile = "c:\\public_key.asc";  
         
         // verify and extract the signed content
         boolean validSignature = pgp.verifyString(openpgpMessage, publicKeyFile, decryptedMessage);      
         if (validSignature) {
             System.out.println("The signature is valid.");
         } else {
             System.out.println("The signature is invalid!");
         }
         
         System.out.println("plain message: " + decryptedMessage.toString());
     }
 }
 

Parameters:
message - OpenPGP signed message
publicKeyFileName - The public key of the sender, used to verify the message
decryptedString - Output string for the uncompressed signed content
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature

verifyString

public boolean verifyString(java.lang.String message,
                            java.lang.String publicKeyFileName,
                            java.lang.StringBuffer decryptedString,
                            java.lang.String charsetName)
                     throws java.io.IOException,
                            PGPException,
                            FileIsEncryptedException
Verifies an OpenPGP signed only message.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class VerifyStringDemo {
     public static void main(String[] args) throws Exception {
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         String openpgpMessage = ""; // Fill here the OpenPGP signed message
         StringBuffer decryptedMessage = new StringBuffer();

         // The public key of the sender, used to verify the message  
         String publicKeyFile = "c:\\public_key.asc";  
         
         // verify and extract the signed content
         String messageCharSet = "UTF-8";
         boolean validSignature = pgp.verifyString(openpgpMessage, publicKeyFile, decryptedMessage, messageCharSet);      
         if (validSignature) {
             System.out.println("The signature is valid.");
         } else {
             System.out.println("The signature is invalid!");
         }
         
         System.out.println("plain message: " + decryptedMessage.toString());
     }
 }
 

Parameters:
message - OpenPGP signed message
publicKeyFileName - The public key of the sender, used to verify the message
decryptedString - Output string for the uncompressed signed content
charsetName - the name of a supported charset
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - in case of an I/O error
PGPException - general OpenPGP error
NoPublicKeyFoundException - if the public key source is not a valid public key or is corrupted
FileIsEncryptedException - if the input file is not only signed but also encrypted
NonPGPDataException - if the input data is not a valid OpenPGP message
DetachedSignatureException - if the input is a detached OpenPGP signature

decryptAndVerifyString

public boolean decryptAndVerifyString(java.lang.String message,
                                      java.lang.String privateKeyFileName,
                                      java.lang.String privateKeyPassword,
                                      java.lang.String publicKeyFileName,
                                      java.lang.StringBuffer decryptedString)
                               throws java.io.IOException,
                                      PGPException,
                                      FileIsEncryptedException
Decrypts and verifies an OpenPGP one pass signed end encrypted message.

Note: The embedded plain text message is converted into String assuming it is UTF-8 encoded. Use the overloaded message with charset parameter if it uses different encoding.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class DecryptAndVerifyStringDemo {
     public static void main(String[] args) throws Exception {
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         String openpgpMessage = ""; // Fill here the OpenPGP encrypted and signed message
         StringBuffer decryptedMessage = new StringBuffer();

         // The public key of the sender, used to verify the message  
         String publicKeyFile = "c:\\public_key.asc";  
         
         String privateKeyFile = "c:\\my_private_key.asc";
         String privateKeyPassword = "my passsword";
         
         // verify and extract the signed content
         boolean validSignature = pgp.decryptAndVerifyString(openpgpMessage,
                                                               privateKeyFile,
                                                               privateKeyPassword, 
                                                               publicKeyFile, 
                                                               decryptedMessage);
                                                                     
         if (validSignature) {
             System.out.println("The signature is valid.");
         } else {
             System.out.println("The signature is invalid!");
         }
         
         System.out.println("plain message: " + decryptedMessage.toString());
     }
 }
 

Parameters:
message - OpenPGP signed message
privateKeyFile - Private key used for decryption
privateKeyPassword - The password of the private key
publicKeyFileName - The public key of the sender, used to verify the message
decryptedString - Output string for the uncompressed signed content
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
FileIsEncryptedException

decryptAndVerifyString

public boolean decryptAndVerifyString(java.lang.String message,
                                      java.lang.String privateKeyFileName,
                                      java.lang.String privateKeyPassword,
                                      java.lang.String publicKeyFileName,
                                      java.lang.StringBuffer decryptedString,
                                      java.lang.String charsetName)
                               throws java.io.IOException,
                                      PGPException
Decrypts and verifies an OpenPGP one pass signed end encrypted message.

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class DecryptAndVerifyStringDemo {
     public static void main(String[] args) throws Exception {
         // create an instance of the library
         PGPLib pgp = new PGPLib();

         String openpgpMessage = ""; // Fill here the OpenPGP encrypted and signed message
         StringBuffer decryptedMessage = new StringBuffer();

         // The public key of the sender, used to verify the message  
         String publicKeyFile = "c:\\public_key.asc";  
         
         String privateKeyFile = "c:\\my_private_key.asc";
         String privateKeyPassword = "my passsword";
         
         // verify and extract the signed content
         String messageCharSet = "UTF-8";
         boolean validSignature = pgp.decryptAndVerifyString(openpgpMessage,
                                                               privateKeyFile,
                                                               privateKeyPassword, 
                                                               publicKeyFile, 
                                                               decryptedMessage, 
                                                               messageCharSet);      
         if (validSignature) {
             System.out.println("The signature is valid.");
         } else {
             System.out.println("The signature is invalid!");
         }
         
         System.out.println("plain message: " + decryptedMessage.toString());
     }
 }
 

Parameters:
message - OpenPGP signed message
privateKeyFile - Private key used for decryption
privateKeyPassword - The password of the private key
publicKeyFileName - The public key of the sender, used to verify the message
decryptedString - Output string for the uncompressed signed content
charsetName - the name of a supported charset
Returns:
true if signed correctly, false if not signed with this public key
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted

decryptAndVerifyFile

public boolean decryptAndVerifyFile(java.lang.String encryptedFileName,
                                    KeyStore keyStore,
                                    java.lang.String privateKeyPassword,
                                    java.lang.String outputFileName)
                             throws PGPException,
                                    java.io.IOException
Decrypts and verifies one pass encrypted and signed OpenPGP file
Supports OpenPGP version 3 format too (used by PGP 6.5 and below).

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
keyStore - Key store containing the Private Key for decryption and the other party Public key for verification
privateKeyPassword - Private key password
outputFileName - File name of the Output decrypted file (absolute or relative path).
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptFile(String, KeyStore, String, String, String, String, boolean, boolean)

decryptAndVerifyFileTo

public boolean decryptAndVerifyFileTo(java.lang.String encryptedFileName,
                                      KeyStore keyStore,
                                      java.lang.String privateKeyPassword,
                                      java.lang.String outputFolder)
                               throws PGPException,
                                      java.io.IOException
Decrypts and verifies one pass encrypted and signed OpenPGP file
Supports OpenPGP version 3 format too (used by PGP 6.5 and below).

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
keyStore - Key store containing the Private Key for decryption and the other party Public key for verification
privateKeyPassword - Private key password
outputFileName - File name of the Output decrypted file (absolute or relative path).
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptFile(String, KeyStore, String, String, String, String, boolean, boolean)

decryptAndVerifyStream

public boolean decryptAndVerifyStream(java.io.InputStream encryptedStream,
                                      KeyStore keyStore,
                                      java.lang.String privateKeyPassword,
                                      java.io.OutputStream outputStream)
                               throws PGPException,
                                      java.io.IOException
Decrypts and verifies OpenPGP encrypted and signed stream.
Supports OpenPGP version 3 format too (used by PGP 2.x systems).

Parameters:
encryptedStream - Input stream with the encrypted content
keyStore - Key store instance containing the Private Key for decryption and the other party Public key for verification
privateKeyPassword - Private Key password
outputStream - Output stream for the decrypted content
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptStream(InputStream, String, KeyStore, String, String, String, OutputStream, boolean, boolean)

decryptAndVerifyFile

public boolean decryptAndVerifyFile(java.lang.String encryptedFileName,
                                    java.lang.String privateKeyFileName,
                                    java.lang.String privateKeyPassword,
                                    java.lang.String publicKeyFile,
                                    java.lang.String outputFileName)
                             throws PGPException,
                                    java.io.IOException
Decrypts and verifies an OpenPGP encrypted and signed file
Supports OpenPGP version 3 format too (used by PGP(r) 5 and below).

Example:
 import com.didisoft.pgp.*;
 
 public class DecryptAndVerifyFileDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         // verify and extract the signed content
         boolean validSignature = pgp.decryptAndVerifyFile("encrypted.pgp",
                                                           "decryption_private_key.asc",
                                                           "decryption key password",   
                                                           "sender_public_key.asc", 
                                                           "OUTPUT.txt");      
         if (validSignature) {
             System.out.println("Signature is valid.");
         } else {
             System.out.println("!Signature is invalid!");
         }
     }
 }
 

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
privateKeyFileName - Private key file name used for decryption (absolute or relative path)
privateKeyPassword - Private key password
publicKeyFile - Public key file name used for verification of the signature (absolute or relative path)
outputFileName - File name of the output decrypted file (absolute or relative path).
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptFile(String, String, String, String, String, boolean, boolean)

decryptAndVerifyFileTo

public boolean decryptAndVerifyFileTo(java.lang.String encryptedFileName,
                                      java.lang.String privateKeyFileName,
                                      java.lang.String privateKeyPassword,
                                      java.lang.String publicKeyFile,
                                      java.lang.String outputFolder)
                               throws PGPException,
                                      java.io.IOException
Decrypts and verifies an OpenPGP encrypted and signed file to a folder
This methods is very suitable for multi file PGP archives. Supports OpenPGP version 3 format too (used by PGP 5.6 and below).

Example:
 import com.didisoft.pgp.*;
 
 public class DecryptAndVerifyFileToDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         String outputFolder = "c:\\Temp";
         
         // verify and extract the signed content
         boolean validSignature = pgp.decryptAndVerifyFileTo("encrypted.pgp",
                                                           "decryption_private_key.asc",
                                                           "decryption key password",   
                                                           "sender_public_key.asc", 
                                                           outputFolder);      
         if (validSignature) {
             System.out.println("Signature is valid.");
         } else {
             System.out.println("!Signature is invalid!");
         }
     }
 }
 

Parameters:
encryptedFileName - File name to be decrypted (absolute or relative path)
privateKeyFileName - Private key file name used for decryption (absolute or relative path)
privateKeyPassword - Private key password
publicKeyFile - Public key file name used for verification of the signature (absolute or relative path)
outputFolder - Output folder where the decrypted file(s) will be stored
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptFile(String, String, String, String, String, boolean, boolean)

decryptAndVerifyStream

public boolean decryptAndVerifyStream(java.io.InputStream encryptedStream,
                                      java.io.InputStream privateKeyStream,
                                      java.lang.String privateKeyPassword,
                                      java.io.InputStream publicKeyStream,
                                      java.io.OutputStream outputStream)
                               throws PGPException,
                                      java.io.IOException
Decrypts and verifies OpenPGP encrypted and signed stream.
Supports OpenPGP version 3 format too (used by PGP 6.5 and below).

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class DecryptAndVerifyStreamDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         InputStream dataStream = new FileInputStream("signed.pgp");
         InputStream decryptionKeyStream = new FileInputStream("decryption_private_key.asc");
         InputStream verificationKeyStream = new FileInputStream("sender_public_key.asc");
         OutputStream outputStream = new FileOutputStream("OUTPUT.txt");
         
         try {
           // verify and extract the signed content
           boolean validSignature = pgp.decryptAndVerifyStream(dataStream,
                                                             decryptionKeyStream,
                                                             "decryption key password",   
                                                             verificationKeyStream, 
                                                             outputStream);      
           if (validSignature) {
             System.out.println("Signature is valid.");
           } else {
             System.out.println("!Signature is invalid!");
           }
         } finally {
           dataStream.close();
           decryptionKeyStream.close();
           verificationKeyStream.close();
           outputStream.close();
         }         
     }
 }
 

Parameters:
encryptedStream - Input stream with the encrypted and signed content
privateKeyStream - Private Key stream used for decryption. This is usually our own private key
privateKeyPassword - Private Key password
publicKeyStream - Public Key stream used for signature verification. This is usually the public key of the sender
outputStream - Output stream for the decrypted content
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptStream(InputStream, String, InputStream, String, InputStream, OutputStream, boolean, boolean)

decryptAndVerifyStreamTo

public boolean decryptAndVerifyStreamTo(java.io.InputStream encryptedStream,
                                        java.io.InputStream privateKeyStream,
                                        java.lang.String privateKeyPassword,
                                        java.io.InputStream publicKeyStream,
                                        java.lang.String outputFolder)
                                 throws PGPException,
                                        java.io.IOException
Decrypts and verifies OpenPGP encrypted and signed stream.
Supports OpenPGP version 3 format too (used by PGP 6.5 and below).

Example:
 import java.io.*;
 import com.didisoft.pgp.*;
 
 public class DecryptAndVerifyStreamToDemo {
     public static void main(String[] args) throws Exception{
         // create an instance of the library
         PGPLib pgp = new PGPLib();
         
         InputStream dataStream = new FileInputStream("signed.pgp");
         InputStream decryptionKeyStream = new FileInputStream("decryption_private_key.asc");
         InputStream verificationKeyStream = new FileInputStream("sender_public_key.asc");
         
         String outputFolder = "c:\\Temp";
         
         try {
           // verify and extract the signed content
           boolean validSignature = pgp.decryptAndVerifyStreamTo(dataStream,
                                                             decryptionKeyStream,
                                                             "decryption key password",   
                                                             verificationKeyStream, 
                                                             outputFolder);      
           if (validSignature) {
             System.out.println("Digital signature is valid.");
           } else {
             System.out.println("!Digital signature is invalid!");
           }
         } finally {
           dataStream.close();
           decryptionKeyStream.close();
           verificationKeyStream.close();
           outputStream.close();
         }         
     }
 }
 

Parameters:
encryptedStream - Input stream with the encrypted and signed content
privateKeyStream - Private Key stream used for decryption. This is usually our own private key
privateKeyPassword - Private Key password
publicKeyStream - Public Key stream used for signature verification. This is usually the public key of the sender
outputFolder - Output folder where the decrypted file(s) will be stored
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptStream(InputStream, String, InputStream, String, InputStream, OutputStream, boolean, boolean)

decryptAndVerifyStreamTo

public boolean decryptAndVerifyStreamTo(java.io.InputStream encryptedStream,
                                        KeyStore keyStore,
                                        java.lang.String privateKeyPassword,
                                        java.lang.String outputFolder)
                                 throws PGPException,
                                        java.io.IOException
Decrypts and verifies OpenPGP encrypted and signed stream.
Supports OpenPGP version 3 format too (used by PGP 2.x systems).

Parameters:
encryptedStream - Input stream with the encrypted content
keyStore - Key store instance containing the Private Key for decryption and the other party Public key for verification
privateKeyPassword - Private Key password
outputFolder - Output folder where the decrypted file(s) will be stored
Returns:
true if signature is valid, false if signature is invalid
Throws:
java.io.IOException - if a file/stream operation throws an exception
PGPException - general OpenPGP error
NonPGPDataException - if the encrypted input is not a valid OpenPGP encrypted message
NoPrivateKeyFoundException - if the supplied private key source does not contain a private key or is corrupted
NoPublicKeyFoundException - if the supplied public key source does not contain a public key or is corrupted
WrongPrivateKeyException - if the encrypted input was not encrypted with this private key.
WrongPasswordException - if the password for this private key is misspelled.
FileIsPBEEncryptedException - if the encrypted input is a password encrypted (PBE) OpenPGP archive
DetachedSignatureException - if the encrypted input is a detached OpenPGP signature
IntegrityCheckException - if the encrypted input is corrupted
See Also:
signAndEncryptStream(InputStream, String, KeyStore, String, String, String, OutputStream, boolean, boolean)


Copyright © 2006-2013 DidiSoft Ltd. All Rights Reserved.