# Package org.bouncycastle.openpgp

High level classes for dealing with OpenPGP objects.

Note: These are based on the org.bouncycastle.bcpg classes and use a streaming model, so for some objects which have an input stream associated it is necessary to read to the end of the input stream on the object before trying to read another object from the orginal input stream.

A word on key ring files. For the purpose of this package a PGP key ring is a master key and a collection of sub-keys associated with it. These public and secret key rings are handled by the PGPPublicKey ring class and the PGPSecretKeyRing class respectively. In the case where you are trying to read an key file which has multiple key rings in it, use PGPSecretKeyRingCollection for the secret key file and PGPPublicKeyRingCollection for the public key file.

- Interface Summary
  Interface | Description
  --- | ---
  PGPAlgorithmParameters |
  PGPKeyFlags | key flag values for the KeyFlags subpacket.

- Class Summary
  Class | Description
  --- | ---
  PGPCompressedData | A PGP compressed data object.
  PGPCompressedDataGenerator | Generator for producing compressed data packets.
  PGPEncryptedData | A PGP encrypted data object.
  PGPEncryptedDataGenerator | Generator for encrypted objects.
  PGPEncryptedDataList | A holder for a list of PGP encryption method packets and the encrypted data associated with them.
  PGPKdfParameters |
  PGPKeyPair | General class to handle JCA key pairs and convert them into OpenPGP ones.
  PGPKeyRing | Parent class for PGP public and secret key rings.
  PGPKeyRingGenerator | Generator for a PGP master and subkey ring.
  PGPLiteralData | A single literal data packet in a PGP object stream.
  PGPLiteralDataGenerator | Generator for producing literal data packets.
  PGPMarker | a PGP marker packet - in general these should be ignored other than where the idea is to preserve the original input stream.
  PGPObjectFactory | General class for reading a PGP object stream.
  PGPOnePassSignature | A one pass signature object.
  PGPOnePassSignatureList | Holder for a list of PGPOnePassSignatures
  PGPPBEEncryptedData | A password based encryption object.
  PGPPrivateKey | general class to contain a private key for use with other openPGP objects.
  PGPPublicKey | general class to handle a PGP public key object.
  PGPPublicKeyEncryptedData | A public key encrypted data object.
  PGPPublicKeyRing | Class to hold a single master public key and its subkeys.
  PGPPublicKeyRingCollection | Often a PGP key ring file is made up of a succession of master/sub-key key rings.
  PGPSecretKey | general class to handle and construct a PGP secret key object.
  PGPSecretKeyRing | Class to hold a single master secret key and its subkeys.
  PGPSecretKeyRingCollection | Often a PGP key ring file is made up of a succession of master/sub-key key rings.
  PGPSignature | A PGP signature object.
  PGPSignatureGenerator | Generator for PGP Signatures.
  PGPSignatureList | A list of PGP signatures - normally in the signature block after literal data.
  PGPSignatureSubpacketGenerator | Generator for signature subpackets.
  PGPSignatureSubpacketVector | Container for a list of signature subpackets.
  PGPUserAttributeSubpacketVector | Container for a list of user attribute subpackets.
  PGPUserAttributeSubpacketVectorGenerator |
  PGPUtil | PGP utilities.
  PGPV3SignatureGenerator | Generator for old style PGP V3 Signatures.

- Exception Summary
  Exception | Description
  --- | ---
  PGPDataValidationException | Thrown if the iv at the start of a data stream indicates the wrong key is being used.
  PGPException | generic exception class for PGP encoding/decoding problems
  PGPKeyValidationException | Thrown if the key checksum is invalid.
  PGPRuntimeOperationException |