Описание

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

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

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

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

Синтаксис

function GrdFeatureCryptAndCount(handle: GrdHandle; dataSize: grd_uint32; data: Pointer; mode: grd_uint32; context: Pointer; contextSize: grd_uint32;
                                    decryption: Integer; n: grd_uint32; flags: grd_uint32): Integer; stdcall; external;

Параметры

handle
Дескриптор сессии
dataSize
Размер (в байтах) буфера для открытого сообщения
data
Буфер содержащий открытое сообщение
mode

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

  • GRD_EM_ECB
  • GRD_EM_CBC
  • GRD_EM_CFB 
  • GRD_EM_OFB

Флаги шифрования:

  • GRD_NO_COUNTER_DECREMENT
  • GRD_SOFTWARE_ACCELERATION
context
Контекст GrdAesContext, необходимый для операций шифрования с помощью AES
contextSize
Размер контекста
decryption

Тип преобразования, где для шифрования данных в параметр передается нулевое значение, а для расшифровывания любое ненулевое значение

n
Количество запусков компонента, вычитаемых при вызове функции. Параметр принимает целочисленное ненулевое значение
flags [зарезервировано]

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

GrdStatus

  • No labels