Versions Compared

Key

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

...

Deck of Cards
id001
Card
defaulttrue
labelС
Code Block
languagecpp
int GRD_API GrdCrypt(	
  HANDLE hGrd,
  DWORD dwAlgo,
  DWORD dwDataLng,
  void *pData,
  DWORD dwMethod,
  void *pIV,
  void *pKeyBuf,
  void *pContext
);	
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

Единственный блок данных

pIV

вектор инициализации:
для GSII64 - 8 байтов, для AES - 16 байтов.
Если в качестве указателя на вектор инициализации задан 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)

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

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

Card
labelC#
Code Block
languagec#
public static GrdE GrdCrypt(Handle grdHandle,GrdAlgNum algNum, byte[] data, GrdAM method, ref long iv)
public static GrdE GrdCrypt(Handle grdHandle,GrdAlgNum algNum, byte[] data, GrdAM method, byte[] iv)
public static GrdE GrdCrypt(Handle grdHandle,GrdAlgNum algNum, byte[] data, GrdAM method, byte[] iv, byte[] key)
public static GrdE GrdCrypt(Handle grdHandle, GrdAlgNum algNum, byte[] data, GrdAM method, byte[] iv, byte[] key, byte[] context)

Expand
titleПараметры метода

 

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

 

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

 

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

 

...