Описание
В зависимости от параметра 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 |
Флаги шифрования:
|
context | Указатель на контекст GrdAesContext, необходимый для операций шифрования с помощью AES. Может быть NULL |
contextSize | Размер контекста. Должен быть равен sizeof(GrdAesContext). Допускается нулевое значение |
decryption | Тип преобразования, где для шифрования данных в параметр передается нулевое значение, а для расшифровывания любое ненулевое значение |
n | Количество запусков компонента, вычитаемых при вызове функции. Параметр принимает целочисленное, ненулевое значение |
flags [зарезервировано] | NULL |