Package org.bouncycastle.openpgp.operator

## Class PublicKeyKeyEncryptionMethodGenerator

- java.lang.Object
- - org.bouncycastle.openpgp.operator.PGPKeyEncryptionMethodGenerator
  - - org.bouncycastle.openpgp.operator.PublicKeyKeyEncryptionMethodGenerator

- Direct Known Subclasses:
    `BcPublicKeyKeyEncryptionMethodGenerator`, `JcePublicKeyKeyEncryptionMethodGenerator`

      public abstract class PublicKeyKeyEncryptionMethodGenerator
      extends PGPKeyEncryptionMethodGenerator

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `SESSION_KEY_OBFUSCATION_PROPERTY` |
    `protected boolean` | `sessionKeyObfuscation` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `PublicKeyKeyEncryptionMethodGenerator​(PGPPublicKey pubKey)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract byte[]` | `encryptSessionInfo​(PGPPublicKey pubKey, byte[] sessionInfo)` |
    `ContainedPacket` | `generate​(int encAlgorithm, byte[] sessionInfo)` | Generates a packet encoding the details of this encryption method.
    `byte[][]` | `processSessionInfo​(byte[] encryptedSessionInfo)` |
    `PublicKeyKeyEncryptionMethodGenerator` | `setSessionKeyObfuscation​(boolean enabled)` | Controls whether to obfuscate the size of ECDH session keys using extra padding where necessary.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### SESSION_KEY_OBFUSCATION_PROPERTY

          public static final java.lang.String SESSION_KEY_OBFUSCATION_PROPERTY

      See Also:
        Constant Field Values

    - #### sessionKeyObfuscation

          protected boolean sessionKeyObfuscation

  - ### Constructor Detail

    - #### PublicKeyKeyEncryptionMethodGenerator

          protected PublicKeyKeyEncryptionMethodGenerator​(PGPPublicKey pubKey)

  - ### Method Detail

    - #### setSessionKeyObfuscation

          public PublicKeyKeyEncryptionMethodGenerator setSessionKeyObfuscation​(boolean enabled)

      Controls whether to obfuscate the size of ECDH session keys using extra padding where necessary.

      The default behaviour can be configured using the system property "", or else it will default to enabled.

      Returns:
        the current generator.

    - #### processSessionInfo

          public byte[][] processSessionInfo​(byte[] encryptedSessionInfo)
                                      throws PGPException

      Throws:
        `PGPException`

    - #### generate

          public ContainedPacket generate​(int encAlgorithm,
                                          byte[] sessionInfo)
                                   throws PGPException

      Description copied from class: `PGPKeyEncryptionMethodGenerator`
      Generates a packet encoding the details of this encryption method.
      Specified by:
        `generate` in class `PGPKeyEncryptionMethodGenerator`
      Parameters:
        `encAlgorithm` - the `encryption algorithm` being used
        `sessionInfo` - session data generated by the encrypted data generator.
      Returns:
        a packet encoding the provided information and the configuration of this instance.
      Throws:
        `PGPException` - if an error occurs constructing the packet.

    - #### encryptSessionInfo

          protected abstract byte[] encryptSessionInfo​(PGPPublicKey pubKey,
                                                       byte[] sessionInfo)
                                                throws PGPException

      Throws:
        `PGPException`