You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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

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

    hGrd

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

    dwItemNum

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

    dwAddr

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

    dwLng

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

    pData

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

    dwReadPsw

    зарезервировано

    pReserved

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

    pData

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

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

    GrdE_NoService

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

    GrdE_InactiveItem

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

    GrdE_Overbound

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

     

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

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

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

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

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

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

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

     

     

    Функция GcaPI_Update позволяет перезаписывать данные защищенной ячейки или определитель алгоритма. При этом определитель алгоритма можно перезаписать только целиком, а в защищенной ячейке можно перезаписывать любой участок данных.

     

    C
    int GcaPI_Update(
    HANDLE hGrd,
    DWORD dwItemNum,
    DWORD dwAddr,
    DWORD dwLng,
    void *pData,
    DWORD dwUpdatePsw,
    DWORD dwMethod,
    void *pReserved
    );

    C#

    Visual Basic

    Visual C++

    hGrd

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

    dwItemNum

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

    dwAddr

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

    dwLng

    длина блока данных, которые будут обновлены

    pData

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

    dwUpdatePsw

    зарезервировано

    dwMethod

    метод обновления данных. Задается одной из констант GrdUM_XXX

    GrdUM_MOV

    Данные из буфера pData заменяют старые данные

    GrdUM_XOR

    Данные из буфера pData складываются со старыми данными по модулю 2

    pReserved

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

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

    GrdE_NoService

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

    GrdE_InactiveItem

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

    GrdE_Overbound

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

     

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

    Функция 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 игнорируют пароль для доступа к ячейке и счетчик ошибок ввода пароля.

    См. директорию:

    "%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\ARM\"

    • No labels