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