Card |
---|
| Code Block |
---|
| int GRD_API GrdPI_Update(
HANDLE hGrd,
DWORD dwItemNum,
DWORD dwAddr,
DWORD dwLng,
void *pData,
DWORD dwUpdatePsw,
DWORD dwMethod,
void *pReserved
); |
Expand |
---|
| hGrd | хэндл, через который будет выполнено обновление | dwItemNum | номер защищенной ячейки/алгоритма для которой будет производиться обновление | dwAddr | смещение в определителе защищенной ячейки/алгоритма, начиная с которого будет производиться обновление | dwLng | длина блока данных, которые будут обновлены | pData | указатель на буфер, содержащий данные для обновления | dwUpdatePsw | пароль для обновления. Если пароль не используется, параметр должен быть равен 0 | dwMethod | метод обновления данных. Задается одной из констант GrdUM_XXX GrdUM_MOV | Данные из буфера pData заменяют старые данные | GrdUM_XOR | Данные из буфера pData складываются со старыми данными по модулю 2 |
| pReserved | зарезервировано. Параметр должен быть равен NULL |
|
Expand |
---|
title | Возвращаемое значение функции |
---|
| Возможные ошибки GrdE_AccessDenied | неверный пароль обновления, доступ к ячейке запрещен | GrdE_StatusUnchangeable | достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован | GrdE_NoService | для данного типа ячейки не предусмотрена операция обновления | GrdE_InactiveItem | ячейка в деактивированном состоянии, обновление выполнить невозможно | GrdE_Overbound | адрес для обновления выходит за пределы определителя | | Стандартный набор ошибок |
|
Expand |
---|
| GrdPI_Update позволяет менять определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]) после указания пароля обновления. При этом определитель аппаратного алгоритма можно менять только целиком. При попытке изменить часть определителя возвращается код ошибки GrdE_InvalidArg. В защищенной ячейке можно менять любой участок данных. Обновление данных в дескрипторе ячейки можно производить в том случае, когда она находится в активном состоянии. Для обновления можно потребовать указать пароль dwUpdatePsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию. Если алгоритм или ячейка находятся в активном состоянии (Active) и был задан правильный пароль на обновление, функция возвращает GrdE_OK и производится обновление данных, начиная со смещения в определителе ячейки dwAddr. При этом данные из буфера pData длиной dwLng в зависимости от метода обновления dwMethod либо замещают старые данные, либо складываются со старыми данными по модулю 2. Максимальное значение dwLng - 255 байт. Функции GrdPI_Read, GrdPI_Update в случае ключей Guardant Sign/Time не имеют ранее существовавшего ограничения в 255 байт на длину считываемого/перезаписываемого определителя алгоритма/защищенной ячейки. Это связано с отсутствием в указанных ключах ограничения на размер определителя. Если смещение dwAddr задано слишком большим, возвращается ошибка GrdE_Overbound. Если сумма dwAddr+dwLng выходит за доступные для чтения пределы, данных записывается ровно столько, сколько можно записать. При этом функция возвращает GrdE_OK и никаких других кодов ошибки не генерируется. Если при попытке обновления активной ячейки был указан неверный пароль dwUpdatePsw, функция GrdPI_Update возвращает ошибку GrdE_AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, функция GrdTransform будет нормально работать. |
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdPI_Update(Handle grdHandle,GrdAlgNum algNum, uint addr, byte[] data, uint updatePsw, GrdUM method)
private static unsafe GrdE GrdPI_Update(IntPtr hAddress, int algNum, uint addr, byte[] data, uint updatePsw, int method)
|
Expand |
---|
| grdHandle [in] Тип: Handle Нэндл, с помощью которого будет выполнено обновление. algNum [in] Тип: GrdAlgNum Номер аппаратного алгоритма или защищенной ячейки, для которых будет происходить обновление. addr [in] Тип: uint Смещение в определителе защищенной ячейки или алгоритма, начиная с которого будет происходить обновление. data [in] тип: byte [ ] Указатель на буфер, который содержит данные для обновления. method [in] типы: int, GrdUM Метод обновления данных. Задается одной из констант GrdUM. updatePsw [in] Тип: uint Пароль для обновления. |
Expand |
---|
title | Возвращаемое значение метода |
---|
| Возможные ошибки GrdE_AccessDenied | неверный пароль обновления, доступ к ячейке запрещен | GrdE_StatusUnchangeable | достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован | GrdE_NoService | для данного типа ячейки не предусмотрена операция обновления | GrdE_InactiveItem | ячейка в деактивированном состоянии, обновление выполнить невозможно | GrdE_Overbound | адрес для обновления выходит за пределы определителя | | Стандартный набор ошибок |
|
Expand |
---|
| GrdPI_Update позволяет менять определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]) после указания пароля обновления. При этом определитель аппаратного алгоритма можно менять только целиком. При попытке изменить часть определителя возвращается код ошибки GrdE_InvalidArg. В защищенной ячейке можно менять любой участок данных. Обновление данных в дескрипторе ячейки можно производить в том случае, когда она находится в активном состоянии. Для обновления можно потребовать указать пароль dwUpdatePsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию. Если алгоритм или ячейка находятся в активном состоянии (Active) и был задан правильный пароль на обновление, функция возвращает GrdE_OK и производится обновление данных, начиная со смещения в определителе ячейки dwAddr. При этом данные из буфера pData длиной dwLng в зависимости от метода обновления dwMethod либо замещают старые данные, либо складываются со старыми данными по модулю 2. Максимальное значение dwLng - 255 байт. Функции GrdPI_Read, GrdPI_Update в случае ключей Guardant Sign/Time не имеют ранее существовавшего ограничения в 255 байт на длину считываемого/перезаписываемого определителя алгоритма/защищенной ячейки. Это связано с отсутствием в указанных ключах ограничения на размер определителя. Если смещение dwAddr задано слишком большим, возвращается ошибка GrdE_Overbound. Если сумма dwAddr+dwLng выходит за доступные для чтения пределы, данных записывается ровно столько, сколько можно записать. При этом функция возвращает GrdE_OK и никаких других кодов ошибки не генерируется. Если при попытке обновления активной ячейки был указан неверный пароль dwUpdatePsw, функция GrdPI_Update возвращает ошибку GrdE_AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, функция GrdTransform будет нормально работать. |
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdPI_Update(Handle grdHandle, int itemNum, int addr, byte[] data, int updatePsw, GrdUM method) |
Expand |
---|
| grdHandle [in] Тип: Handle Нэндл, с помощью которого будет выполнено обновление. itemNum [in] Тип: int Номер аппаратного алгоритма или защищенной ячейки, для которых будет происходить обновление. addr [in] Тип: int Смещение в определителе защищенной ячейки или алгоритма, начиная с которого будет происходить обновление. data [in] тип: byte [ ] Указатель на буфер, который содержит данные для обновления. method [in] тип: GrdUM Метод обновления данных. Задается одной из констант GrdUM. updatePsw [in] Тип: int Пароль для обновления. |
Expand |
---|
title | Возвращаемое значение метода |
---|
| Возможные ошибки GrdE_AccessDenied | неверный пароль обновления, доступ к ячейке запрещен | GrdE_StatusUnchangeable | достигнут лимит количества ошибок, статус ячейки изменить нельзя. Доступ к ячейке на чтение заблокирован | GrdE_NoService | для данного типа ячейки не предусмотрена операция обновления | GrdE_InactiveItem | ячейка в деактивированном состоянии, обновление выполнить невозможно | GrdE_Overbound | адрес для обновления выходит за пределы определителя | | Стандартный набор ошибок |
|
Expand |
---|
| GrdPI_Update позволяет менять определитель аппаратного алгоритма или данные защищенной ячейки (rs_K[]) после указания пароля обновления. При этом определитель аппаратного алгоритма можно менять только целиком. При попытке изменить часть определителя возвращается код ошибки GrdE_InvalidArg. В защищенной ячейке можно менять любой участок данных. Обновление данных в дескрипторе ячейки можно производить в том случае, когда она находится в активном состоянии. Для обновления можно потребовать указать пароль dwUpdatePsw, который задается при создании ячейки или алгоритма. При создании ячейки в GRDUTIL пароль требуется по умолчанию. Если алгоритм или ячейка находятся в активном состоянии (Active) и был задан правильный пароль на обновление, функция возвращает GrdE_OK и производится обновление данных, начиная со смещения в определителе ячейки dwAddr. При этом данные из буфера pData длиной dwLng в зависимости от метода обновления dwMethod либо замещают старые данные, либо складываются со старыми данными по модулю 2. Максимальное значение dwLng - 255 байт. Функции GrdPI_Read, GrdPI_Update в случае ключей Guardant Sign/Time не имеют ранее существовавшего ограничения в 255 байт на длину считываемого/перезаписываемого определителя алгоритма/защищенной ячейки. Это связано с отсутствием в указанных ключах ограничения на размер определителя. Если смещение dwAddr задано слишком большим, возвращается ошибка GrdE_Overbound. Если сумма dwAddr+dwLng выходит за доступные для чтения пределы, данных записывается ровно столько, сколько можно записать. При этом функция возвращает GrdE_OK и никаких других кодов ошибки не генерируется. Если при попытке обновления активной ячейки был указан неверный пароль dwUpdatePsw, функция GrdPI_Update возвращает ошибку GrdE_AccessDenied. При этом автоматически в ключе уменьшается счетчик ошибок доступа к ячейке, который задается при создании ячейки. Когда значение счетчика ошибок доходит до 0, статус ячейки становится неизменяемым, то есть ячейку больше невозможно активировать/деактивировать/читать/менять ее значение. Однако если алгоритм находился в состоянии Active, функция GrdTransform будет нормально работать. |
|
|