Функция(метод) GrdPI_Read позволяет считывать данные защищенной ячейки или определителя алгоритма.

int GRD_API GrdPI_Read(	
  HANDLE hGrd,
  DWORD dwItemNum,
  DWORD dwAddr,
  DWORD dwLng,
  void *pData,
  DWORD dwReadPsw,
  void *pReserved
);	

hGrd

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

dwItemNum

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

dwAddr

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

dwLng

длина блока данных, которые должны быть прочитаны

pData

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

dwReadPsw

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

pReserved

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

pData

буфер, содержащий прочитанные данные

Возможные ошибки

GrdE_AccessDenied

неверный пароль чтения, доступ к ячейке запрещен

GrdE_StatusUnchangeable

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

GrdE_NoService

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

GrdE_InactiveItem

ячейка в деактивированном состоянии, чтение выполнить невозможно

GrdE_Overbound

адрес для чтения выходит за пределы дескриптора

 

Набор ошибок Guardant API

Функция GrdPI_Read позволяет читать определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]).

Чтение из ячейки можно производить в том случае, когда она находится в активном состоянии. Для чтения можно потребовать указать пароль dwReadPsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию.

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

Функции GrdPI_Read, GrdPI_Update в случае ключей Guardant Sign/Time не имеют ранее существовавшего ограничения в 255 байт на длину считываемого/перезаписываемого определителя алгоритма/защищенной ячейки. Это связано с отсутствием в указанных ключах ограничения на размер определителя.

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

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

Если при попытке чтения активной ячейки был указан неверный пароль dwReadPsw, функция GrdPI_Read возвращает ошибку GrdE_AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, функция GrdTransform будет нормально работать.

public static GrdE GrdPI_Read(Handle grdHandle,GrdAlgNum algNum, uint addr, byte[] data)
public static GrdE GrdPI_Read(Handle grdHandle,GrdAlgNum algNum, uint addr, byte[] data, uint readPsw)
public static GrdE GrdPI_Read(Handle grdHandle,GrdAlgNum algNum, uint addr, int lng, out byte[] data)
public static GrdE GrdPI_Read(Handle grdHandle,GrdAlgNum algNum, uint addr, int lng, out byte[] data, uint readPsw)

grdHandle [in] 

Тип: Handle

Нэндл, с помощью которого будет выполнено чтение.

algNum [in] 

Тип: GrdAlgNum

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

addr [in]

Тип: uint

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

data [out]

тип: byte [ ]

Указатель на буфер для прочитанных данных.

lng [in]

тип: int

Длина блока данных, которые должны быть прочитаны.

readPsw [in]

Тип: uint

Пароль для чтения.

Возможные ошибки

GrdE.AccessDenied

неверный пароль чтения, доступ к ячейке запрещен

GrdE.StatusUnchangeable

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

GrdE.NoService

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

GrdE.InactiveItem

ячейка в деактивированном состоянии, чтение выполнить невозможно

GrdE.Overbound

адрес для чтения выходит за пределы дескриптора

 

Набор ошибок Guardant API


Метод GrdPI_Read позволяет читать определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]).

Чтение из ячейки можно производить в том случае, когда она находится в активном состоянии. Для чтения можно потребовать указать пароль readPsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию.

Если алгоритм или ячейка находятся в активном состоянии (Active) и был задан правильный пароль на чтение, метод возвращает GrdE.OK и в буфер data считывается lng байт, начиная со смещения в определителе ячейки addr. Максимальное значение lng - 255 байт.

Методы GrdPI_Read, GrdPI_Update в случае ключей Guardant Sign/Time не имеют ранее существовавшего ограничения в 255 байт на длину считываемого/перезаписываемого определителя алгоритма/защищенной ячейки. Это связано с отсутствием в указанных ключах ограничения на размер определителя.

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

Если сумма addr+lng выходит за доступные для чтения пределы, данных считывается ровно столько, сколько можно считать. При этом метод возвращает GrdE.OK и никаких других кодов ошибки не генерируется.

Если при попытке чтения активной ячейки был указан неверный пароль readPsw, метод GrdPI_Read возвращает ошибку GrdE.AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, метод GrdTransform будет нормально работать.

public static GrdE GrdPI_Read(Handle grdHandle, int itemNum, int addr, byte[] data)
public static GrdE GrdPI_Read(Handle grdHandle, int itemNum, int addr, byte[] data, int readPsw)

grdHandle [in] 

Тип: Handle

Нэндл, с помощью которого будет выполнено чтение.

itemNum [in] 

Тип: int

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

addr [in]

Тип: int

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

data [out]

тип: byte [ ]

Указатель на буфер для прочитанных данных.

readPsw [in]

Тип: int

Пароль для чтения.

Возможные ошибки

GrdE.AccessDenied

неверный пароль чтения, доступ к ячейке запрещен

GrdE.StatusUnchangeable

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

GrdE.NoService

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

GrdE.InactiveItem

ячейка в деактивированном состоянии, чтение выполнить невозможно

GrdE.Overbound

адрес для чтения выходит за пределы дескриптора

 

Набор ошибок Guardant


Метод GrdPI_Read позволяет читать определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]).

Чтение из ячейки можно производить в том случае, когда она находится в активном состоянии. Для чтения можно потребовать указать пароль readPsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию.

Если алгоритм или ячейка находятся в активном состоянии (Active) и был задан правильный пароль на чтение, метод возвращает GrdE.OK и в буфер data считывается информация, начиная со смещения в определителе ячейки addr. Максимальное значение считываемых данных - 255 байт.

Методы GrdPI_Read, GrdPI_Update в случае ключей Guardant Sign/Time не имеют ранее существовавшего ограничения в 255 байт на длину считываемого/перезаписываемого определителя алгоритма/защищенной ячейки. Это связано с отсутствием в указанных ключах ограничения на размер определителя.

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

Если затребовано более 255 байт, данных считывается ровно столько, сколько можно считать. При этом метод возвращает GrdE.OK и никаких других кодов ошибки не генерируется.

Если при попытке чтения активной ячейки был указан неверный пароль readPsw, метод GrdPI_Read возвращает ошибку GrdE.AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, метод GrdTransform будет нормально работать.