Bouncy Castle Cryptography Library 1.79

org.bouncycastle.openpgp
Class PGPEncryptedDataList

java.lang.Object
  |
  +--org.bouncycastle.openpgp.PGPEncryptedDataList
All Implemented Interfaces:
org.bouncycastle.util.Iterable

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

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
PGPEncryptedDataList(BCPGInputStream pIn)
          Construct an encrypted data packet holder, reading PGP encrypted method packets and an encrypted data packet from the stream.
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.
 
Method Summary
 PGPSessionKeyEncryptedData extractSessionKeyEncryptedData()
          Create a decryption method using a PGPSessionKey.
 PGPEncryptedData get(int index)
          Gets the encryption method object at the specified index.
 java.util.Iterator 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.
 boolean isIntegrityProtected()
          Checks whether the packet is integrity protected.
 java.util.Iterator 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
 

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

isIntegrityProtected

public boolean isIntegrityProtected()
Checks whether the packet is integrity protected.
Returns:
true if there is a modification detection code package associated with this stream

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 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 iterator()
Support method for Iterable where available.
Specified by:
iterator in interface org.bouncycastle.util.Iterable

extractSessionKeyEncryptedData

public PGPSessionKeyEncryptedData extractSessionKeyEncryptedData()
Create a decryption method using a PGPSessionKey. This method can be used to decrypt messages which do not contain a SKESK or PKESK packet using a session key.
Returns:
session key encrypted data

Bouncy Castle Cryptography Library 1.79