Class PGPSecretKeyRing

    • Constructor Detail

      • PGPSecretKeyRing

        public PGPSecretKeyRing​(java.util.List secKeys)
        Base constructor from a list of keys representing a secret key ring (a master key and its associated sub-keys).
        Parameters:
        secKeys - the list of keys making up the ring.
    • Method Detail

      • getPublicKey

        public PGPPublicKey getPublicKey​(long keyID)
        Return the public key referred to by the passed in keyID if it is present.
        Specified by:
        getPublicKey in class PGPKeyRing
        Parameters:
        keyID - the full keyID of the key of interest.
        Returns:
        PGPPublicKey with matching keyID, null if it is not present.
      • getPublicKey

        public PGPPublicKey getPublicKey​(byte[] fingerprint)
        Return the public key with the passed in fingerprint if it is present.
        Specified by:
        getPublicKey in class PGPKeyRing
        Parameters:
        fingerprint - the full fingerprint of the key of interest.
        Returns:
        PGPPublicKey with the matching fingerprint, null if it is not present.
      • getKeysWithSignaturesBy

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

        public java.util.Iterator<PGPPublicKey> getPublicKeys()
        Return an iterator containing all the public keys.
        Specified by:
        getPublicKeys in class PGPKeyRing
        Returns:
        Iterator
      • getSecretKey

        public PGPSecretKey getSecretKey()
        Return the master private key.
        Returns:
        PGPSecretKey
      • getSecretKeys

        public java.util.Iterator<PGPSecretKey> getSecretKeys()
        Return an iterator containing all the secret keys.
        Returns:
        Iterator
      • getSecretKey

        public PGPSecretKey getSecretKey​(long keyID)
        Return the secret key referred to by the passed in keyID if it is present.
        Parameters:
        keyID - the full keyID of the key of interest.
        Returns:
        PGPSecretKey with matching keyID, null if it is not present.
      • getSecretKey

        public PGPSecretKey getSecretKey​(byte[] fingerprint)
        Return the secret key associated with the passed in fingerprint if it is present.
        Parameters:
        fingerprint - the full fingerprint of the key of interest.
        Returns:
        PGPSecretKey with the matching fingerprint, null if it is not present.
      • getExtraPublicKeys

        public java.util.Iterator<PGPPublicKey> getExtraPublicKeys()
        Return an iterator of the public keys in the secret key ring that have no matching private key. At the moment only personal certificate data appears in this fashion.
        Returns:
        iterator of unattached, or extra, public keys.
      • getEncoded

        public byte[] getEncoded()
                          throws java.io.IOException
        Specified by:
        getEncoded in class PGPKeyRing
        Throws:
        java.io.IOException
      • encode

        public void encode​(java.io.OutputStream outStream)
                    throws java.io.IOException
        Specified by:
        encode in class PGPKeyRing
        Throws:
        java.io.IOException
      • iterator

        public java.util.Iterator<PGPSecretKey> iterator()
        Support method for Iterable where available.
        Specified by:
        iterator in interface java.lang.Iterable<PGPSecretKey>
        Specified by:
        iterator in interface org.bouncycastle.util.Iterable<PGPSecretKey>
      • replacePublicKeys

        public static PGPSecretKeyRing replacePublicKeys​(PGPSecretKeyRing secretRing,
                                                         PGPPublicKeyRing publicRing)
        Replace the public key set on the secret ring with the corresponding key off the public ring.
        Parameters:
        secretRing - secret ring to be changed.
        publicRing - public ring containing the new public key set.
      • copyWithNewPassword

        public static PGPSecretKeyRing copyWithNewPassword​(PGPSecretKeyRing ring,
                                                           PBESecretKeyDecryptor oldKeyDecryptor,
                                                           PBESecretKeyEncryptor newKeyEncryptor)
                                                    throws PGPException
        Return a copy of the passed in secret key ring, with the private keys (where present) associated with the master key and sub keys are encrypted using a new password and the passed in algorithm.
        Parameters:
        ring - the PGPSecretKeyRing to be copied.
        oldKeyDecryptor - the current decryptor based on the current password for key.
        newKeyEncryptor - a new encryptor based on a new password for encrypting the secret key material.
        Returns:
        the updated key ring.
        Throws:
        PGPException
      • insertSecretKey

        public static PGPSecretKeyRing insertSecretKey​(PGPSecretKeyRing secRing,
                                                       PGPSecretKey secKey)
        Returns a new key ring with the secret key passed in either added or replacing an existing one with the same key ID.
        Parameters:
        secRing - the secret key ring to be modified.
        secKey - the secret key to be added.
        Returns:
        a new secret key ring.
      • removeSecretKey

        public static PGPSecretKeyRing removeSecretKey​(PGPSecretKeyRing secRing,
                                                       PGPSecretKey secKey)
        Returns a new key ring with the secret key passed in removed from the key ring.
        Parameters:
        secRing - the secret key ring to be modified.
        secKey - the secret key to be removed.
        Returns:
        a new secret key ring, or null if secKey is not found.