- Created by Dyakov Alexey, last modified by Guardant R&D on Nov 26, 2014
Функция(метод) 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 |
буфер, содержащий прочитанные данные |
Возможные ошибки
неверный пароль чтения, доступ к ячейке запрещен |
|
достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован |
|
для данного типа ячейки не предусмотрена операция чтения |
|
ячейка в деактивированном состоянии, чтение выполнить невозможно |
|
адрес для чтения выходит за пределы дескриптора |
|
Функция 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
Пароль для чтения.
Возможные ошибки
неверный пароль чтения, доступ к ячейке запрещен |
|
достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован |
|
для данного типа ячейки не предусмотрена операция чтения |
|
ячейка в деактивированном состоянии, чтение выполнить невозможно |
|
адрес для чтения выходит за пределы дескриптора |
|
Метод 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
Пароль для чтения.
Возможные ошибки
неверный пароль чтения, доступ к ячейке запрещен |
|
достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован |
|
для данного типа ячейки не предусмотрена операция чтения |
|
ячейка в деактивированном состоянии, чтение выполнить невозможно |
|
адрес для чтения выходит за пределы дескриптора |
|
Метод 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 будет нормально работать.
- No labels