Class PGPPublicKeyRingCollection

  • All Implemented Interfaces:
    org.bouncycastle.util.Iterable
    Direct Known Subclasses:
    BcPGPPublicKeyRingCollection, JcaPGPPublicKeyRingCollection

    public class PGPPublicKeyRingCollection
    extends java.lang.Object
    implements org.bouncycastle.util.Iterable
    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 Detail

      • PGPPublicKeyRingCollection

        public PGPPublicKeyRingCollection​(java.io.InputStream in,
                                          KeyFingerPrintCalculator fingerPrintCalculator)
                                   throws java.io.IOException,
                                          PGPException
        Build a PGPPublicKeyRingCollection from the passed in input stream.
        Parameters:
        in - input stream containing data
        Throws:
        java.io.IOException - if a problem parsing the base stream occurs
        PGPException - if an object is encountered which isn't a PGPPublicKeyRing
      • PGPPublicKeyRingCollection

        public PGPPublicKeyRingCollection​(java.util.Collection collection)
    • Method Detail

      • size

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

        public java.util.Iterator getKeyRings()
        return the public key rings making up this collection.
      • getKeyRings

        public java.util.Iterator getKeyRings​(java.lang.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 java.util.Iterator getKeyRings​(java.lang.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 java.util.Iterator getKeyRings​(java.lang.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 java.util.Iterator 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 java.io.IOException
        Throws:
        java.io.IOException
      • encode

        public void encode​(java.io.OutputStream outStream)
                    throws java.io.IOException
        Throws:
        java.io.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:
        java.lang.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:
        java.lang.IllegalArgumentException - if the keyID for the passed in ring not present.
      • iterator

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