Class PGPKeyRingGenerator

java.lang.Object
org.bouncycastle.openpgp.PGPKeyRingGenerator

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

    • PGPKeyRingGenerator

      public PGPKeyRingGenerator(int certificationLevel, PGPKeyPair masterKey, String id, PGPDigestCalculator checksumCalculator, PGPSignatureSubpacketVector hashedPcks, PGPSignatureSubpacketVector unhashedPcks, PGPContentSignerBuilder keySignerBuilder, PBESecretKeyEncryptor keyEncryptor) throws PGPException
      Create a new key ring generator.
      Parameters:
      certificationLevel -
      masterKey -
      id - id to associate with the key.
      checksumCalculator - key checksum calculator
      hashedPcks -
      unhashedPcks -
      keySignerBuilder - builder for key certifications - will be initialised with master secret key.
      keyEncryptor - encryptor for secret subkeys.
      Throws:
      PGPException
    • PGPKeyRingGenerator

      public PGPKeyRingGenerator(PGPKeyPair masterKey, PGPDigestCalculator checksumCalculator, PGPSignatureSubpacketVector hashedPcks, PGPSignatureSubpacketVector unhashedPcks, PGPContentSignerBuilder keySignerBuilder, PBESecretKeyEncryptor keyEncryptor) throws PGPException
      Create a new key ring generator without a user-id, but instead with a primary key carrying a direct-key signature.
      Parameters:
      masterKey - primary key
      checksumCalculator - checksum calculator
      hashedPcks - hashed signature subpackets
      unhashedPcks - unhashed signature subpackets
      keySignerBuilder - signer builder
      keyEncryptor - key encryptor
      Throws:
      PGPException
    • 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 Details

    • 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.