Описание

Расшифровывает буфер данных при помощи криптографического алгоритма AES128, ассоциированного с компонентом (Feature). Выполняет проверку лицензионных условий компонента.

Если лицензия ограничена по количеству запусков, то эта функция уменьшает значение счетчика запусков для лицензии.

Флаги шифрования могут применяться дополнительно к выбранному режиму шифрования.
Если установлен флаг GRD_NO_COUNTER_DECREMENT, то функция использует другой ключ шифрования и счетчик запусков не уменьшается.
Флаг GRD_SOFTWARE_ACCELERATION позволяет значительно ускорить работу функции, т.к. данные будут расшифровываться программным алгоритмом, ключ для которого зависит от компонента.

Если данные шифровались с флагом GRD_NO_COUNTER_DECREMENT, то расшифровывать нужно также с этим флагом.

Режимы шифрования GRD_EM_CFB и GRD_EM_OFB доступны только при одновременном использовании флага GRD_SOFTWARE_ACCELERATION.

Если при шифровании использовался вектор инициализации iv, то при дешифрации необходимо указать тот же вектор.

Синтаксис

function GrdFeatureDecrypt(
  handle: GrdHandle;
  dataSize: grd_uint32;
  data: Pointer;
  mode: grd_uint32;
  iv: Pointer;
  ivSize: grd_uint32): Integer; stdcall;

Параметры

handle
Дескриптор сеcсии
dataSize
Размер (в байтах) буфера для шифрования
data
Указатель на буфер для шифрования
mode

Режим шифрования:

  • GRD_EM_ECB;
  • GRD_EM_CBC;
  • GRD_EM_ECB | GRD_NO_COUNTER_DECREMENT;
  • GRD_EM_CBC | GRD_NO_COUNTER_DECREMENT
iv
Буфер для передачи вектора инициализации. Может быть NULL
ivSize
Размер буфера вектора инициализации iv. Должен быть равен 16 байт. Может быть 0

Возвращаемые значения

GRD_OK

GRD_INVALID_HANDLE

GRD_INVALID_FEATURE

  • No labels