Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Deck of Cards
id001
Card
defaulttrue
labelC
Code Block
languagecpp
int GRD_API GrdCrypt(	
    HANDLE hGrd,
    DWORD dwAlgo,
    DWORD dwDataLng,
    void *pData,
 	 DWORD dwMethod,
	  DWORD	dwIVLng,
  void *pIV,
  void *pKeyBuf,
  void *pContext
  void *pReserved
);	
Expand
titleПараметры функции

hGrd

хэндл, через который будет выполнена данная операция

dwAlgo

номер аппаратного (GSII64) или программно-реализованного алгоритма (AES), которым будет производиться преобразование. Программно-реализованный алгоритм AES 256 имеет номер GrdSC_AES256.

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

длина вектора инициализации:
- для GSII64 - 8 байтов, для AES - 16 байтов

pIV

вектор инициализации
Если в качестве указателя на вектор инициализации задан NULL, то преобразование пройдет корректно, при этом будет использован нулевой вектор

pKeyBuf

буфер для передачи ключа шифрования для программно-реализованного алгоритма (AES). Длина ключа 256 бит (32 байта). Только для программно-реализованных алгоритмов. При использовании аппаратного алгоритма параметр должен быть равен NULL

pContext

буфер для контекста при шифровании больших массивов данных, которые разбиваются на несколько блоков. Для контекста должна быть зарезервирована память размером GrdXXXXXX_CONTEXT_SIZE байт в зависимости от алгоритма. Только для программно-реализованных алгоритмов. При использовании аппаратного алгоритма параметр должен быть равен NULL

GrdAES256_KEY_SIZE

Длина ключа AES - 256 бит

GrdAES256_BLOCK_SIZE

Длина блока данных AES - 128 бит

GrdAES_CONTEXT_SIZE

Значение должно быть больше или равно sizeof(AES_CONTEXT)

Reserved

не используется. Параметр должен быть равен NULL

Expand
titleВозвращаемое значение функции

Cтандартный набор ошибок

Card
labelC#
Code Block
languagec#
public static GrdE GrdCryptEx(Handle grdHandle, GrdAlgNum algNum, byte[] data, GrdAM method, byte[] iv)
public static GrdE GrdCryptEx(Handle grdHandle, GrdAlgNum algNum, byte[] data, GrdAM method, byte[] iv, byte[] key)
public static GrdE GrdCryptEx(Handle grdHandle, GrdAlgNum algNum, byte[] data, GrdAM method, byte[] iv, byte[] key, byte[] context)
Expand
titleПараметры метода

grdHandle [in] 

Тип: Handle

хэндл, через который будет выполнена данная операция.

algNum [in]

Тип: GrdAlgNum

Номер аппаратного алгоритма, с помощью которого будет происходить преобразование.

data [in]

Тип: byte [ ]

Буфер данных для преобразования.

method [in]

Тип: GrdAM

Метод преобразования. Задается комбинацией флагов GrdAM.

iv [in]

Тип: byte [ ]

Вектор инициализации.

key [in]

Тип: byte [ ]

Буфер для передачи ключа шифрования для программно-реализованного алгоритма AES.

context [in]

Тип: byte [ ]

Буфер для контекста при шифровании больших массивов данных, которые разбиваются на несколько блоков.

Expand
titleВозвращаемое значение метода

 

Card
labelJava
Code Block
languagejava
public static GrdE GrdCryptEx(Handle grdHandle, int algoNum, byte[] data,  int method, byte[] iv)
public static GrdE GrdCryptEx(Handle grdHandle, int algoNum, byte[] data,  int method, byte[] iv, byte[] key)
public static GrdE GrdCryptEx(Handle grdHandle, int algoNum, byte[] data,  int method, byte[] iv, byte[] key, byte[] context)
Expand
titleПараметры метода

 

Expand
titleВозвращаемое значение метода

 

...