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