IDbCryptPlugin
Интерфейс IDbCryptPlugin
является основным интерфейсом плагинашифрования базы данных.
-
setKey
void setKey(StatusType* status, unsigned length, IKeyHolderPlugin** sources, const char* keyName)
используется для предоставления информации плагину шифрования базыданных о ключе шифрования. Firebird никогда не передает ключи для этоготипа плагина напрямую. Вместо этого массив
IKeyHolderPlugins
заданнойдлины передается в плагин шифрования, который должен получить от одногоиз них интерфейсICryptKeyCallback
и затемполучить ключ, используя его. ПараметрkeyName
— это имя ключа, котороебыло введено в оператореALTER DATABASE ENCRYPT …
. -
encrypt
void encrypt(StatusType* status, unsigned length, const void* from, void* to)
шифрует данные перед записью блока в файл базы данных
-
decrypt
void decrypt(StatusType* status, unsigned length, const void* from, void* to)
расшифровывает данные после чтения блока из файла базы данных.
-
setInfo
void setInfo(StatusType* status, IDbCryptInfo* info)
в этом методе плагин шифрования обычно сохраняет информационныйинтерфейс для будущего использования.
Хранитель ключа для плагина шифрования базы данных
Этот тип плагина необходим для разграничения функциональности — плагиншифрования базы данных имеет дело с фактическим шифрованием, держательключа решает вопросы, связанные с предоставлением ему ключа безопаснымспособом. Плагин может получить ключ из приложения или загрузить егокаким-либо другим способом (вплоть до использования флэш-устройства,вставленного в сервер при запуске Firebird).