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  GcaPI_GetCounter(
HANDLE	hGrd,			
DWORD	dwItemNum,		
DWORD	*pdwCounter,		
void	*pReserved		
);	
Expand
titleПараметры функции

hGrd

не используется

dwItemNum

числовое имя аппаратного алгоритма/защищенной ячейки

pdwCounter

указатель на буфер для передачи значения счетчика

pReserved

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

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

 

 

GrdE_OK

нет ошибок

GrdE_NeedInitialization

требуется инициализация API (вызов GrdStartup)

GrdE_InvalidHandle

недействительный хэндл

GrdE_NoService

для алгоритма/ячейки сервис не предусмотрен

GrdE_InvalidArg

недопустимый параметр при вызове функции

Expand
titleОписание

Функция GcaPI_Update позволяет менять определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]). При этом определитель аппаратного алгоритма можно менять только целиком. При попытке изменить часть определителя возвращается код ошибки GrdE_InvalidArg. В защищенной ячейке можно менять любой участок данных.

Обновление данных в дескрипторе ячейки можно производить в том случае, когда она находится в активном состоянии.

Если алгоритм или ячейка находятся в активном состоянии (Active), функция возвращает GrdE_OK и производится обновление данных, начиная со смещения в определителе ячейки dwAddr. При этом данные из буфера pData длиной dwLng в зависимости от метода обновления dwMethod либо замещают старые данные, либо складываются со старыми данными по модулю 2.

Если смещение dwAddr задано слишком большим, возвращается ошибка GrdE_Overbound.

Если сумма dwAddr+dwLng выходит за доступные для чтения пределы, данных записывается ровно столько, сколько можно записать. При этом функция возвращает GrdE_OK  и никаких других кодов ошибки не генерируется.

Функции GcaPI_Read и GcaPI_Update игнорируют пароль для доступа к ячейке и счетчик ошибок ввода пароля.

...

 

Функция GcaPI_GetCounter возвращает значение счетчика запусков алгоритма или защищённой ячейки.

...

 

Wiki Markup
{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
int  GcaPI_GetCounter(
HANDLE	hGrd,			
DWORD	dwItemNum,		
DWORD	*pdwCounter,		
void	*pReserved		
);	
{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}

Expand
titleВходные параметры

hGrd

не используется

dwItemNum

числовое имя аппаратного алгоритма/защищенной ячейки

pdwCounter

указатель на буфер для передачи значения счетчика

pReserved

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

Expand
titleВыходные параметры

GrdE_OK

нет ошибок

GrdE_NeedInitialization

требуется инициализация API (вызов GrdStartup)

GrdE_InvalidHandle

недействительный хэндл

GrdE_NoService

для алгоритма/ячейки сервис не предусмотрен

GrdE_InvalidArg

недопустимый параметр при вызове функции

expand
Expand
titleОписание
Функция GcaPI_GetCounter возвращает значение счетчика запусков алгоритма или защищённой ячейки.
Числовое имя алгоритма или защищённой ячейки задается параметром dwItemNum. Если счетчик запусков алгоритма не используется (флаг nsafl_GP_dec либо nsafl_GP поля LoFlags дескриптора алгоритма), возвращается ошибка GrdE_NoService.

 

...

titleПример

...