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 GrdHash(	
  HANDLE hGrd,
  DWORD dwHash,
  DWORD dwDataLng,
  void *pData,
  DWORD dwMethod,
  void *pDigest,
  void *pKeyBuf,
  void *pContext
);	
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

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

pDigest

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

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

pKeyBuf

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

pContext

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

GrdSHA256_DIGEST_SIZE

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

GrdSHA256_CONTEXT_SIZE

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

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

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

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

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

 

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

 

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

 

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

 

...