Описание

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

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

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


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

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

Синтаксис

int GRD_API GrdFeatureCryptAndCount(GrdHandle handle,
									grd_uint32 dataSize,
									void* data,
									grd_uint32 mode,
									void* context,
									grd_uint32 contextSize,
                                    int decryption,
                                    grd_uint32 n,
                                    grd_uint32 flags);

Параметры

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. Может быть NULL
contextSize
Размер контекста. Должен быть равен sizeof(GrdAesContext). Допускается нулевое значение
decryption

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

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

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

GRD_OK

GRD_INVALID_HANDLE

GRD_INVALID_FEATURE


  • No labels