Module org.firebirdsql.jaybird
Package org.firebirdsql.gds.ng.wire.crypt

# Interface CryptSessionConfig

All Superinterfaces:
  `AutoCloseable`

public interface CryptSessionConfig extends AutoCloseable
Interface for the encryption/decryption session config for wire protocol encryption for a specific plugin.

Since:
  5
Author:
  Mark Rotteveel

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Clears (e.g.
  `byte[]`
  `decryptKey()`
  `EncryptionIdentifier`
  `encryptionIdentifier()`
  `byte[]`
  `encryptKey()`
  `byte[]`
  `specificData()`
  `static CryptSessionConfig`
  `symmetric(EncryptionIdentifier encryptionIdentifier, byte[] sessionKey, byte[] specificData)`
  Creates a crypt session config for a type symmetric plugin.

- ## Method Details

  - ### encryptionIdentifier

    EncryptionIdentifier encryptionIdentifier()
    Returns:
      Encryption identifier

  - ### encryptKey

    byte[] encryptKey()
    Returns:
      Encryption key

  - ### decryptKey

    byte[] decryptKey()
    Returns:
      Decryption key

  - ### specificData

    byte[] specificData()
    Returns:
      Plugin-specific data (can be `null`)

  - ### close

    void close()
    Clears (e.g. zeroes out) the keys and specific data
    Specified by:
      `close` in interface `AutoCloseable`

  - ### symmetric

    static CryptSessionConfig symmetric(EncryptionIdentifier encryptionIdentifier, byte[] sessionKey, byte[] specificData)
    Creates a crypt session config for a type symmetric plugin.
    Parameters:
      `encryptionIdentifier` - Encryption identifier of type Symmetric
      `sessionKey` - Session key (non-`null`)
      `specificData` - Plugin specific data (can be `null`)
    Returns:
      Crypt session config