Class PGPKeyRingGenerator


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

      • PGPKeyRingGenerator

        public PGPKeyRingGenerator​(int certificationLevel,
                                   PGPKeyPair primaryKey,
                                   java.lang.String id,
                                   PGPDigestCalculator checksumCalculator,
                                   PGPSignatureSubpacketVector hashedPcks,
                                   PGPSignatureSubpacketVector unhashedPcks,
                                   PGPContentSignerBuilder keySignerBuilder,
                                   PBESecretKeyEncryptor keyEncryptor)
                            throws PGPException
        Create a new key ring generator.
        Parameters:
        certificationLevel - certification level for user-ids
        primaryKey - primary key
        id - id to associate with the key.
        checksumCalculator - key checksum calculator
        hashedPcks - hashed signature subpackets
        unhashedPcks - unhashed signature subpackets
        keySignerBuilder - builder for key certifications - will be initialised with primary secret key.
        keyEncryptor - encryptor for secret subkeys.
        Throws:
        PGPException - error during signature generation
      • 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 primary 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 primary key.
        checksumCalculator - key checksum calculator
        keySignerBuilder - builder for key certifications - will be initialised with primary secret key.
        keyEncryptor - encryptor for secret subkeys.
        Throws:
        PGPException - error during signature generation
    • 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 primary key.
        Parameters:
        keyPair - the key pair to add.
        Throws:
        PGPException - error during signature generation
      • 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 primary 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 - error during signature generation
      • 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 - error during signature generation
      • 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 - error during signature generation
      • 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.