Package org.bouncycastle.openpgp

## Class PGPEncryptedDataList

- java.lang.Object
- - org.bouncycastle.openpgp.PGPEncryptedDataList

- All Implemented Interfaces:
    `java.lang.Iterable<PGPEncryptedData>`, `org.bouncycastle.util.Iterable<PGPEncryptedData>`

      public class PGPEncryptedDataList
      extends java.lang.Object
      implements org.bouncycastle.util.Iterable<PGPEncryptedData>

  A holder for a list of PGP encryption method packets and the encrypted data associated with them.

  This holder supports reading a sequence of the following encryption methods, followed by an encrypted data packet:

  - `PacketTags.SYMMETRIC_KEY_ENC_SESSION` - produces a `PGPPBEEncryptedData`
  - `PacketTags.PUBLIC_KEY_ENC_SESSION` - produces a `PGPPublicKeyEncryptedData`

  All of the objects returned from this holder share a reference to the same encrypted data input stream, which can only be consumed once.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PGPEncryptedDataList​(byte[] encData)` | Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from a stream.
    `PGPEncryptedDataList​(java.io.InputStream inStream)` | Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from a stream.
    `PGPEncryptedDataList​(BCPGInputStream pIn)` | Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from the stream.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PGPEncryptedData` | `get​(int index)` | Gets the encryption method object at the specified index.
    `java.util.Iterator<PGPEncryptedData>` | `getEncryptedDataObjects()` | Returns an iterator over the encryption method objects held in this list, in the order they appeared in the stream they are read from.
    `boolean` | `isEmpty()` | Returns `true` iff there are 0 encryption methods in this list.
    `java.util.Iterator<PGPEncryptedData>` | `iterator()` | Support method for Iterable where available.
    `int` | `size()` | Gets the number of encryption methods in this list.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### PGPEncryptedDataList

          public PGPEncryptedDataList​(byte[] encData)
                               throws java.io.IOException

      Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from a stream.

      The first packet in the stream should be one of `PacketTags.SYMMETRIC_KEY_ENC_SESSION` or `PacketTags.PUBLIC_KEY_ENC_SESSION`.

      Parameters:
        `encData` - a byte array containing an encrypted stream.
      Throws:
        `java.io.IOException` - if an error occurs reading from the PGP input.

    - #### PGPEncryptedDataList

          public PGPEncryptedDataList​(java.io.InputStream inStream)
                               throws java.io.IOException

      Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from a stream.

      The first packet in the stream should be one of `PacketTags.SYMMETRIC_KEY_ENC_SESSION` or `PacketTags.PUBLIC_KEY_ENC_SESSION`.

      Parameters:
        `inStream` - the input stream being read.
      Throws:
        `java.io.IOException` - if an error occurs reading from the PGP input.

    - #### PGPEncryptedDataList

          public PGPEncryptedDataList​(BCPGInputStream pIn)
                               throws java.io.IOException

      Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from the stream.

      The next packet in the stream should be one of `PacketTags.SYMMETRIC_KEY_ENC_SESSION` or `PacketTags.PUBLIC_KEY_ENC_SESSION`.

      Parameters:
        `pIn` - the PGP object stream being read.
      Throws:
        `java.io.IOException` - if an error occurs reading from the PGP input.

  - ### Method Detail

    - #### get

          public PGPEncryptedData get​(int index)

      Gets the encryption method object at the specified index.
      Parameters:
        `index` - the encryption method to obtain (0 based).

    - #### size

          public int size()

      Gets the number of encryption methods in this list.

    - #### isEmpty

          public boolean isEmpty()

      Returns `true` iff there are 0 encryption methods in this list.

    - #### getEncryptedDataObjects

          public java.util.Iterator<PGPEncryptedData> getEncryptedDataObjects()

      Returns an iterator over the encryption method objects held in this list, in the order they appeared in the stream they are read from.

    - #### iterator

          public java.util.Iterator<PGPEncryptedData> iterator()

      Support method for Iterable where available.
      Specified by:
        `iterator` in interface `java.lang.Iterable<PGPEncryptedData>`
      Specified by:
        `iterator` in interface `org.bouncycastle.util.Iterable<PGPEncryptedData>`