Class PGPObjectFactory

java.lang.Object
org.bouncycastle.openpgp.PGPObjectFactory
All Implemented Interfaces:
Iterable, org.bouncycastle.util.Iterable
Direct Known Subclasses:
BcPGPObjectFactory, JcaPGPObjectFactory

public class PGPObjectFactory extends Object implements org.bouncycastle.util.Iterable
General class for reading a PGP object stream.

Note: if this class finds a PGPPublicKey or a PGPSecretKey it will create a PGPPublicKeyRing, or a PGPSecretKeyRing for each key found. If all you are trying to do is read a key ring file use either PGPPublicKeyRingCollection or PGPSecretKeyRingCollection.

This factory supports reading the following types of objects:

  • Constructor Details

    • PGPObjectFactory

      public PGPObjectFactory(InputStream in, KeyFingerPrintCalculator fingerPrintCalculator)
      Create an object factory suitable for reading PGP objects such as keys, key rings and key ring collections, or PGP encrypted data.
      Parameters:
      in - stream to read PGP data from.
      fingerPrintCalculator - calculator to use in key finger print calculations.
    • PGPObjectFactory

      public PGPObjectFactory(byte[] bytes, KeyFingerPrintCalculator fingerPrintCalculator)
      Create an object factory suitable for reading PGP objects such as keys, key rings and key ring collections, or PGP encrypted data.
      Parameters:
      bytes - PGP encoded data.
      fingerPrintCalculator - calculator to use in key finger print calculations.
  • Method Details

    • nextObject

      public Object nextObject() throws IOException
      Return the next object in the stream, or null if the end of stream is reached.
      Returns:
      one of the supported objects - see class docs for details.
      Throws:
      IOException - if an error occurs reading from the wrapped stream or parsing data.
    • iterator

      public Iterator iterator()
      Support method for Iterable where available.
      Specified by:
      iterator in interface Iterable
      Specified by:
      iterator in interface org.bouncycastle.util.Iterable
    • setThrowForUnknownCriticalPackets

      public PGPObjectFactory setThrowForUnknownCriticalPackets(boolean throwException)
      If set to true, the object factory will throw an IOException if it encounters an unknown packet with a packet tag within the critical range (0 - 39).
      Parameters:
      throwException - whether to throw
      Returns:
      object factory