Class PGPKeyPairGenerator


  • public abstract class PGPKeyPairGenerator
    extends java.lang.Object
    • Field Detail

      • creationTime

        protected final java.util.Date creationTime
      • version

        protected final int version
      • random

        protected java.security.SecureRandom random
    • Constructor Detail

      • PGPKeyPairGenerator

        public PGPKeyPairGenerator​(int version,
                                   java.util.Date creationTime,
                                   java.security.SecureRandom random,
                                   KeyFingerPrintCalculator fingerPrintCalculator)
        Create an instance of the key pair generator.
        Parameters:
        version - public key version (PublicKeyPacket.VERSION_4 or PublicKeyPacket.VERSION_6).
        creationTime - key creation time
        random - secure random number generator
    • Method Detail

      • generatePrimaryKey

        public PGPKeyPair generatePrimaryKey()
                                      throws PGPException
        Generate a primary key. A primary key MUST use a signing-capable public key algorithm.
        Returns:
        primary key pair
        Throws:
        PGPException - if the key pair cannot be generated
      • generateEncryptionSubkey

        public PGPKeyPair generateEncryptionSubkey()
                                            throws PGPException
        Generate an encryption subkey. An encryption subkey MUST use an encryption-capable public key algorithm.
        Returns:
        encryption subkey pair
        Throws:
        PGPException - if the key pair cannot be generated
      • generateSigningSubkey

        public PGPKeyPair generateSigningSubkey()
                                         throws PGPException
        Generate a signing subkey. A signing subkey MUST use a signing-capable public key algorithm.
        Returns:
        signing subkey pair
        Throws:
        PGPException - if the key pair cannot be generated
      • generateRsaKeyPair

        public PGPKeyPair generateRsaKeyPair​(int bitStrength)
                                      throws PGPException
        Generate a RSA key pair with the given bit-strength. It is recommended to use at least 2048 bits or more. The key will be generated over the default exponent
        65537
        . RSA keys are deprecated for OpenPGP v6.
        Parameters:
        bitStrength - strength of the key pair in bits
        Returns:
        rsa key pair
        Throws:
        PGPException - if the key pair cannot be generated
      • generateRsaKeyPair

        public abstract PGPKeyPair generateRsaKeyPair​(java.math.BigInteger exponent,
                                                      int bitStrength)
                                               throws PGPException
        Generate a RSA key pair with the given bit-strength over a custom exponent. It is recommended to use at least 2048 bits or more. RSA keys are deprecated for OpenPGP v6.
        Parameters:
        exponent - RSA exponent
        e
        bitStrength - strength of the key pair in bits
        Returns:
        rsa key pair
        Throws:
        PGPException - if the key pair cannot be generated
      • generateLegacyX25519KeyPair

        public abstract PGPKeyPair generateLegacyX25519KeyPair()
                                                        throws PGPException
        Generate a legacy elliptic curve Diffie-Hellman encryption key pair over curve25519. Legacy keys have good application support, but MUST NOT be used as OpenPGP v6 keys. The key will use PublicKeyAlgorithmTags.ECDH as algorithm ID. For OpenPGP v6 (RFC9580) use generateX25519KeyPair() instead.
        Returns:
        legacy X25519 key pair
        Throws:
        PGPException - if the key pair cannot be generated