Class PGPKeyRingGenerator


  • public class PGPKeyRingGenerator
    extends java.lang.Object
    Generator for a PGP master and subkey ring. This class will generate both the secret and public key rings
    • Constructor Detail

      • PGPKeyRingGenerator

        public PGPKeyRingGenerator​(PGPSecretKeyRing originalSecretRing,
                                   PBESecretKeyDecryptor secretKeyDecryptor,
                                   PGPDigestCalculator checksumCalculator,
                                   PGPContentSignerBuilder keySignerBuilder,
                                   PBESecretKeyEncryptor keyEncryptor)
                            throws PGPException
        Create a new key ring generator based on an original secret key ring. The default hashed/unhashed sub-packets for subkey signatures will be inherited from the first signature on the master key (other than CREATION-TIME which will be ignored).
        Parameters:
        originalSecretRing - the secret key ring we want to add a subkeyto,
        secretKeyDecryptor - a decryptor for the signing master key.
        checksumCalculator - key checksum calculator
        keySignerBuilder - builder for key certifications - will be initialised with master secret key.
        keyEncryptor - encryptor for secret subkeys.
        Throws:
        PGPException
    • Method Detail

      • addSubKey

        public void addSubKey​(PGPKeyPair keyPair)
                       throws PGPException
        Add a sub key to the key ring to be generated with default certification and inheriting the hashed/unhashed packets of the master key.
        Parameters:
        keyPair - the key pair to add.
        Throws:
        PGPException
      • addSubKey

        public void addSubKey​(PGPKeyPair keyPair,
                              PGPContentSignerBuilder bindingSignerBldr)
                       throws PGPException
        Add a sub key to the key ring to be generated with default certification and inheriting the hashed/unhashed packets of the master key. If bindingSignerBldr is not null it will be used to add a Primary Key Binding signature (type 0x19) into the hashedPcks for the key (required for signing subkeys).
        Parameters:
        keyPair - the key pair to add.
        bindingSignerBldr - provide a signing builder to create the Primary Key signature.
        Throws:
        PGPException
      • addSubKey

        public void addSubKey​(PGPKeyPair keyPair,
                              PGPSignatureSubpacketVector hashedPcks,
                              PGPSignatureSubpacketVector unhashedPcks)
                       throws PGPException
        Add a subkey with specific hashed and unhashed packets associated with it and default certification.
        Parameters:
        keyPair - public/private key pair.
        hashedPcks - hashed packet values to be included in certification.
        unhashedPcks - unhashed packets values to be included in certification.
        Throws:
        PGPException
      • addSubKey

        public void addSubKey​(PGPKeyPair keyPair,
                              PGPSignatureSubpacketVector hashedPcks,
                              PGPSignatureSubpacketVector unhashedPcks,
                              PGPContentSignerBuilder bindingSignerBldr)
                       throws PGPException
        Add a subkey with specific hashed and unhashed packets associated with it and default certification. If bindingSignerBldr is not null it will be used to add a Primary Key Binding signature (type 0x19) into the hashedPcks for the key (required for signing subkeys).
        Parameters:
        keyPair - public/private key pair.
        hashedPcks - hashed packet values to be included in certification.
        unhashedPcks - unhashed packets values to be included in certification.
        bindingSignerBldr - provide a signing builder to create the Primary Key signature.
        Throws:
        PGPException
      • generateSecretKeyRing

        public PGPSecretKeyRing generateSecretKeyRing()
        Return the secret key ring.
        Returns:
        a secret key ring.
      • generatePublicKeyRing

        public PGPPublicKeyRing generatePublicKeyRing()
        Return the public key ring that corresponds to the secret key ring.
        Returns:
        a public key ring.