- Created by Dyakov Alexey, last modified by Guardant R&D on Oct 13, 2014
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 11 Next »
Функция 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
Пароль для чтения.
Возможные ошибки
GrdE_AccessDenied |
неверный пароль чтения, доступ к ячейке запрещен |
GrdE_StatusUnchangeable |
достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован |
GrdE_NoService |
для данного типа ячейки не предусмотрена операция чтения |
GrdE_InactiveItem |
ячейка в деактивированном состоянии, чтение выполнить невозможно |
GrdE_Overbound |
адрес для чтения выходит за пределы дескриптора |
Функция 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, 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 |
адрес для чтения выходит за пределы дескриптора |
Функция 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 будет нормально работать.
- No labels