Class PGPPublicKeyRingCollection

java.lang.Object
org.bouncycastle.openpgp.PGPPublicKeyRingCollection
All Implemented Interfaces:
Iterable<PGPPublicKeyRing>, org.bouncycastle.util.Iterable<PGPPublicKeyRing>
Direct Known Subclasses:
BcPGPPublicKeyRingCollection, JcaPGPPublicKeyRingCollection

public class PGPPublicKeyRingCollection extends Object implements org.bouncycastle.util.Iterable<PGPPublicKeyRing>
Often a PGP key ring file is made up of a succession of master/sub-key key rings. If you want to read an entire public key file in one hit this is the class for you.
  • Constructor Details

  • Method Details

    • size

      public int size()
      Return the number of rings in this collection.
      Returns:
      size of the collection
    • getKeyRings

      public Iterator<PGPPublicKeyRing> getKeyRings()
      return the public key rings making up this collection.
    • getKeyRings

      public Iterator<PGPPublicKeyRing> getKeyRings(String userID)
      Return an iterator of the key rings associated with the passed in userID.
      Parameters:
      userID - the user ID to be matched.
      Returns:
      an iterator (possibly empty) of key rings which matched.
    • getKeyRings

      public Iterator<PGPPublicKeyRing> getKeyRings(String userID, boolean matchPartial)
      Return an iterator of the key rings associated with the passed in userID.

      Parameters:
      userID - the user ID to be matched.
      matchPartial - if true userID need only be a substring of an actual ID string to match.
      Returns:
      an iterator (possibly empty) of key rings which matched.
    • getKeyRings

      public Iterator<PGPPublicKeyRing> getKeyRings(String userID, boolean matchPartial, boolean ignoreCase)
      Return an iterator of the key rings associated with the passed in userID.

      Parameters:
      userID - the user ID to be matched.
      matchPartial - if true userID need only be a substring of an actual ID string to match.
      ignoreCase - if true case is ignored in user ID comparisons.
      Returns:
      an iterator (possibly empty) of key rings which matched.
    • getPublicKey

      public PGPPublicKey getPublicKey(long keyID)
      Return the PGP public key associated with the given key id.
      Parameters:
      keyID - if of the PGP public key
      Returns:
      the PGP public key
    • getPublicKeyRing

      public PGPPublicKeyRing getPublicKeyRing(long keyID)
      Return the public key ring which contains the key referred to by keyID.
      Parameters:
      keyID - key ID to match against
      Returns:
      the public key ring
    • getPublicKey

      public PGPPublicKey getPublicKey(byte[] fingerprint)
      Return the PGP public key associated with the given key fingerprint.
      Parameters:
      fingerprint - the public key fingerprint to match against.
      Returns:
      the PGP public key matching fingerprint.
    • getPublicKeyRing

      public PGPPublicKeyRing getPublicKeyRing(byte[] fingerprint)
      Return the public key ring which contains the key associated with the given key fingerprint.
      Parameters:
      fingerprint - the public key fingerprint to match against.
      Returns:
      the PGP public key ring containing the PGP public key matching fingerprint.
    • getKeysWithSignaturesBy

      public Iterator<PGPPublicKey> getKeysWithSignaturesBy(long keyID)
      Return any keys carrying a signature issued by the key represented by keyID.
      Parameters:
      keyID - the key id to be matched against.
      Returns:
      an iterator (possibly empty) of PGPPublicKey objects carrying signatures from keyID.
    • contains

      public boolean contains(long keyID)
      Return true if a key matching the passed in key ID is present, false otherwise.
      Parameters:
      keyID - key ID to look for.
      Returns:
      true if keyID present, false otherwise.
    • contains

      public boolean contains(byte[] fingerprint)
      Return true if a key matching the passed in fingerprint is present, false otherwise.
      Parameters:
      fingerprint - hte key fingerprint to look for.
      Returns:
      true if keyID present, false otherwise.
    • getEncoded

      public byte[] getEncoded() throws IOException
      Throws:
      IOException
    • encode

      public void encode(OutputStream outStream) throws IOException
      Throws:
      IOException
    • addPublicKeyRing

      public static PGPPublicKeyRingCollection addPublicKeyRing(PGPPublicKeyRingCollection ringCollection, PGPPublicKeyRing publicKeyRing)
      Return a new collection object containing the contents of the passed in collection and the passed in public key ring.
      Parameters:
      ringCollection - the collection the ring to be added to.
      publicKeyRing - the key ring to be added.
      Returns:
      a new collection merging the current one with the passed in ring.
      Throws:
      IllegalArgumentException - if the keyID for the passed in ring is already present.
    • removePublicKeyRing

      public static PGPPublicKeyRingCollection removePublicKeyRing(PGPPublicKeyRingCollection ringCollection, PGPPublicKeyRing publicKeyRing)
      Return a new collection object containing the contents of this collection with the passed in public key ring removed.
      Parameters:
      ringCollection - the collection the ring to be removed from.
      publicKeyRing - the key ring to be removed.
      Returns:
      a new collection not containing the passed in ring.
      Throws:
      IllegalArgumentException - if the keyID for the passed in ring not present.
    • iterator

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