Функция GccaCryptEx зашифровывает или расшифровывает блок данных при помощи аппаратного или программно-реализованного алгоритма.
Deck of Cards |
---|
|
Wiki Markup |
---|
{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
{dojo-tab}
{dojo-tab:title=C#|selected=true}
*C#*
{dojo-tab}
{dojo-tab:title=Visual Basic (Declaration)}
*Visual Basic*
{dojo-tab}
{dojo-tab:title=Visual C++}
*Visual C++*
{dojo-tab}
{dojo-tabs} | Входные параметры | hGrd | не используется | dwAlgo | 1) номер аппаратного алгоритма AES128, если алгоритм вызывается через дескриптор. Или: 2) если ключ шифрования задается напрямую, а не считывается из дескриптора, номер алгоритма должен быть GrdSC_AES128. | dwDataLng | длина блока данных в байтах | pData | буфер данных для преобразования | dwMethod | метод преобразования, который задается комбинацией флагов GrdAM_XXX и GrdSC_XXX Биты 0-5 - режим работы алгоритма | GrdAM_ECB | Режим электронной кодовой книги | GrdAM_CBC | Режим сцепления кодированных блоков | GrdAM_CFB | Режим с кодированной обратной связью | GrdAM_OFB | Режим с обратной связью по выходу | Бит 6 - резерв | Бит 7 - тип операции | GrdAM_Encrypt | Кодировать блок | GrdAM_Decrypt | Декодировать блок | Биты 8-9: тип блока данных | GrdSC_First | Первый блок данных | GrdSC_Next | Следующий блок данных | GrdSC_Last | Последний блок данных | GrdSC_All | Единственный блок данных |
| dwIVLng | длина вектора инициализации: 16 байтов | pIV | вектор инициализации | pKeyBuf | буфер для передачи ключа шифрования для алгоритма (AES). Длина ключа 128 бит (16 байт). | pContext | буфер для контекста при шифровании больших массивов данных, которые разбиваются на несколько блоков. Для контекста должна быть зарезервирована память размером GrdXXXXXX_CONTEXT_SIZE байт в зависимости от алгоритма. Только для программно-реализованных алгоритмов. При использовании аппаратного алгоритма параметр должен быть равен NULL GrdAES128_KEY_SIZE | Длина ключа AES - 128 бит | GrdAES128_BLOCK_SIZE | Длина блока данных AES - 128 бит | GrdAES_CONTEXT_SIZE | Значение должно быть больше или равно sizeof(AES_CONTEXT) |
| Reserved | не используется. Параметр должен быть равен NULL |
|
|
| Выходные параметры | Cтандартный набор ошибок Expand |
---|
| Функция GccaCryptEx позволяет зашифровывать и расшифровывать данные с помощью алгоритма AES128. GccaCryptEx предназначена для работы с алгоритмами шифрования с переменным вектором инициализации. Преобразование производится алгоритмом с порядковым номером, заданным в параметре dwAlgo. В зависимости от номера алгоритма dwAlgo функция определяет, каким образом реализован алгоритм - аппаратным или программным. Программно-реализованные алгоритмы шифрования при шифровании больших массивов данных используют контекст, память для которого размером не менее GrdXXXXXX_CONTEXT_SIZE должна быть зарезервирована до вызова функции. Указатель на буфер для контекста передается через параметр pContext. Длина шифруемых блоков данных зависит от метода шифрования (см. описание методов в Руководство пользователя, часть 3). Для методов CFB и OFB длина шифруемых блоков может быть произвольной. Если в дескрипторе аппаратного алгоритма установлен флаг nsafl_GP_dec (уменьшение счетчика), вычитание счетчика GP происходит при каждом вызове |
| GccCryptEx GccaCryptEx. Новый параметр (dwIVLng) имеет смысл для аппаратных алгоритмов с переменным вектором инициализации, которые появятся в будущем. На существующих алгоритмах это отразится лишь в том случае, если указывается длина вектора инициализации от 0 до 8 байт (включительно). При указании длины более 8 байт шифрование происходит с использованием первых 8 байт указанного вектора инициализации. При вызове GccaCryptEx с нулевым указателем на вектор инициализации возвращается GrdE_OK, шифрование и последующее расшифрование происходит нормально в любых режимах (в т. ч. тех, которые требуют вектор инициализации). Ситуация полностью аналогична использованию нулевого вектора инициализации или вектора инициализации нулевой длины. Может работать как через защищенные ячейки типа алгоритм, так и напрямую обращаться к алгоритму AES128 (GrdSC_AES128 в параметре dwAlgo). |
|
|
Expand |
---|
|
См. директорию:
"%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\ARM\"