Module org.firebirdsql.jaybird
Package org.firebirdsql.gds.ng.dbcrypt

# Class DbCryptData

java.lang.Object
org.firebirdsql.gds.ng.dbcrypt.DbCryptData

public final class DbCryptData extends Object
Data of a database encryption key callback (or reply).

Since:
  3.0.4
Author:
  Mark Rotteveel

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final DbCryptData`
  `EMPTY_DATA`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DbCryptData(byte[] pluginData, int replySize)`
  Initializes `DbCryptData` instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DbCryptData`
  `createReply(byte[] pluginData)`
  Creates a reply with plugin data and expected reply size of `0`.
  `byte[]`
  `getPluginData()`
  `int`
  `getReplySize()`
  Returns the expected reply size.

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

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

- ## Field Details

  - ### EMPTY_DATA

    public static final DbCryptData EMPTY_DATA

- ## Constructor Details

  - ### DbCryptData

    public DbCryptData(byte[] pluginData, int replySize)
    Initializes `DbCryptData` instance.
    Parameters:
      `pluginData` - Data for/from plugin (can be `null`)
      `replySize` - Expected reply size (normally use `0` for a reply)
    Throws:
      `IllegalArgumentException` - when plugin data exceeds maximum length of 32767 bytes

- ## Method Details

  - ### getPluginData

    public byte[] getPluginData()
    Returns:
      Plugin data (can be `null`)

  - ### getReplySize

    public int getReplySize()
    Returns the expected reply size.

    For a protocol version 13 callback, the value will be `Integer.MIN_VALUE` as the protocol does not include this information.

    In the case of a callback, this value is as received from Firebird. Judging by the code in Firebird for protocol v14 and higher, this value may be negative, and should then be considered equivalent to `1`.

    Plugins can use the value as a hint to the expected size of their reply. However smaller (or larger) replies will work.

    Returns:
      Expected reply size

  - ### createReply

    public static DbCryptData createReply(byte[] pluginData)
    Creates a reply with plugin data and expected reply size of `0`.
    Parameters:
      `pluginData` - Plugin response data
    Returns:
      Crypt data