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 GrdHashEx(	
   HANDLE  hGrd, 
   DWORD   dwHash, 
   DWORD   dwDataLng, 
   void    *pData, 
   DWORD   dwMethod, 
   DWORD   dwDigestLng, 
   void    *pDigest, 
   DWORD   dwKeyBufLng, 
   void    *pKeyBuf, 
   DWORD   dwContextLng, 
   void    *pContext, 
   void    *pReserved); 
);	
Expand
titleПараметры функции

hGrd

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

dwHash

Номер аппаратно- или программно-реализованного алгоритма, вычисляющего хэш-функцию. Номер программно-реализованного алгоритма должен быть должен быть равен GrdSH_CRC32 или GrdSH_SHA256. Номер аппаратного алгоритма должен соответствовать номеру используемого алгоритма HASH64.

GrdSH_CRC32

Алгоритм CRC32

GrdSH_SHA256

Алгоритм SHA256

dwDataLng

Длина блока данных, хэш которых будет вычисляться, в байтах. Для алгоритмов HASH64 минимальная длина блока составляет GrdARS_HASH64.

pData

указатель на буфер данных , хэш которых будет вычисляться

dwMethod

метод преобразования, который задается комбинацией флагов GrdSC_XXX

GrdSC_First

Первый блок данных

GrdSC_Next

Следующий блок данных

GrdSC_Last

Последний блок данных

GrdSC_All

Единственный блок данных. Хэш считается за один раз

dwDigestLng

длина вычисляемого дайджеста (хэша)

pDigest

Указатель на буфер, куда будет помещен результат вычислений. Для этого буфера должна быть зарезервирована память не менее:

  • для алгоритма SHA256 - GrdSHA256_DIGEST_SIZE
  • для алгоритма HASH64 - GrdHASH64_DIGEST_SIZE
  • для алгоритма CRC32 - GrdCRC32_DIGEST_SIZE

dwKeyBufLng

Длина секретного ключа. Если не используется, должна быть равна 0

pKeyBuf

Указатель на буфер с секретным ключом для программно-реализованного алгоритма. Если не используется, должен быть равен NULL

dwContextLng

Размер контекста

pContext

Буфер, длиной GrdSHA256_CONTEXT_SIZE для хранения контекста (состояния алгоритма) при последовательном вычислении хэш-функции SHA256 от нескольких блоков данных. Для алгоритмов HASH64 и CRC32 должен быть равен NULL.

GrdSHA256_DIGEST_SIZE

Размер дайджеста, возвращаемого алгоритмом SHA256

GrdSHA256_CONTEXT_SIZE

Размер контекста алгоритма SHA256 для запоминания предыдущего состояния алгоритма

pReserved

Зарезервировано. Параметр должен быть равен NULL

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

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

Card
labelC#
Code Block
languagec#
public static GrdE GrdHashEx(Handle grdHandle,GrdAlgNum hashNum, byte[] data, GrdSC method, byte[] digest)
public static GrdE GrdHashEx(Handle grdHandle,GrdAlgNum hashNum, byte[] data, GrdSC method, byte[] digest, byte[]context)

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

 

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

 

Card
labelJava
Code Block
languagejava
 public static GrdE GrdHashEx(Handle grdHandle, int hash, byte[] data, GrdSC method, byte[] digest)
public static GrdE GrdHashEx(Handle grdHandle, int hash, byte[] data, GrdSC method, byte[] digest, byte[] context)
Expand
titleПараметры метода

 

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

 

...