org.firebirdsql.gds.ng.dbcrypt

## Class DbCryptData

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

    public final class DbCryptData
    extends java.lang.Object

Data of a database encryption key callback (or reply).

Since:
  3.0.4
Author:
  Mark Rotteveel

### Field Summary

Fields
`static DbCryptData` `EMPTY_DATA`

### Constructor Summary

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

### Method Summary

Methods
`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 Detail

#### EMPTY_DATA

    public static final DbCryptData EMPTY_DATA

### Constructor Detail

#### 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:
  `java.lang.IllegalArgumentException` - when plugin data exceeds maximum length of 32767 bytes

### Method Detail

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