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

Compare with Current View Page History

« Previous Version 5 Next »

Функция GrdCodeInit инициализирует пароль перед проведением быстрого взаимообратного преобразования данных. Функция GrdCodeInit была предназначена для работы с устаревшими ключами Guardant Stealth. Данная функция реализована исключительно в целях совместимости и использование ее в современных приложениях не рекомендуется.

    int GRD_API GrdCodeInit(	
      HANDLE hGrd,
      DWORD dwCnvType,
      DWORD dwAddr,
      void *pKeyBuf
    );	

    hGrd

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

    dwCnvType

    метод быстрого взаимообратного преобразования. Задается одним из флагов GrdAT_XXX

    GrdAT_Algo0

    Базовый метод. Кодирование выполняется блоками по 32 байта. Этот метод лучше всего использовать для преобразования нестроковых данных. Важная особенность метода: если закодировать большой объем памяти (или файл) участками, то декодирование нужно будет обязательно делать точно теми же участками, или же размер участков должен быть кратен 32 байтам. Функции GrdEnCode и GrdDeCode не изменяют пароль.

    GrdAT_AlgoASCII

    Символьный метод. Кодирование выполняется блоками по 32 байта. Этот метод хорош для кодирования строковых данных. Например, если вы хотите закодировать название поля базы данных, указанное в исходном тексте программы, то в некоторых языках программирования будет проблематично создать строки с несимвольными значениями. Символьный метод кодирует строки так, чтобы в них не было неотображаемых символов. Функции GrdEnCode и GrdDeCode не изменяют пароль.

    GrdAT_AlgoFile

    Файловый метод. Кодирование выполняется блоками произвольной длины, поэтому такой метод подходит для кодирования файлов. Кодирование этим методом файла блоками меньше 32 байт неэффективно. Функции GrdEnCode и GrdDeCode в этом методе преобразования изменяют пароль, поэтому последовательность использования функции GrdDeCode должна совпадать с последовательностью использования функции GrdEnCode .

    dwAddr

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

    pKeyBuf

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

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

    GrdE_AlgoNotFound

    Алгоритм с указанным номером не существует

    GrdE_CRCErrorFunc

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

    GrdE_GPis0

    Счетчик алгоритма достиг нулевого значения. Результат этого алгоритма больше нельзя получить

    GrdE_InvalidCnvType

    Указан неверный метод преобразования

     

    Стандартный набор ошибок

    public static GrdE GrdCodeInit(Handle grdHandle, GrdAT cnvType, uint addr, byte[] key)
    
    

     

     

     

     

     

    C
    int GRD_API GrdCodeInit(
    HANDLE hGrd,
    DWORD dwCnvType,
    DWORD dwAddr,
    void *pKeyBuf
    );

    C#

    Visual Basic

    Visual C++

    hGrd

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

    dwCnvType

    метод быстрого взаимообратного преобразования. Задается одним из флагов GrdAT_XXX

    GrdAT_Algo0

    Базовый метод. Кодирование выполняется блоками по 32 байта. Этот метод лучше всего использовать для преобразования нестроковых данных. Важная особенность метода: если закодировать большой объем памяти (или файл) участками, то декодирование нужно будет обязательно делать точно теми же участками, или же размер участков должен быть кратен 32 байтам. Функции GrdEnCode и GrdDeCode не изменяют пароль.

    GrdAT_AlgoASCII

    Символьный метод. Кодирование выполняется блоками по 32 байта. Этот метод хорош для кодирования строковых данных. Например, если вы хотите закодировать название поля базы данных, указанное в исходном тексте программы, то в некоторых языках программирования будет проблематично создать строки с несимвольными значениями. Символьный метод кодирует строки так, чтобы в них не было неотображаемых символов. Функции GrdEnCode и GrdDeCode не изменяют пароль.

    GrdAT_AlgoFile

    Файловый метод. Кодирование выполняется блоками произвольной длины, поэтому такой метод подходит для кодирования файлов. Кодирование этим методом файла блоками меньше 32 байт неэффективно. Функции GrdEnCode и GrdDeCode в этом методе преобразования изменяют пароль, поэтому последовательность использования функции GrdDeCode должна совпадать с последовательностью использования функции GrdEnCode .

    dwAddr

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

    pKeyBuf

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

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

    GrdE_AlgoNotFound

    Алгоритм с указанным номером не существует

    GrdE_CRCErrorFunc

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

    GrdE_GPis0

    Счетчик алгоритма достиг нулевого значения. Результат этого алгоритма больше нельзя получить

    GrdE_InvalidCnvType

    Указан неверный метод преобразования

     

    Стандартный набор ошибок

    Функция GrdCodeInit выполняет подготовительные действия перед проведением быстрого взаимообратного преобразования данных. Этот способ преобразования удобно использовать для обработки больших объемов информации (килобайты и мегабайты).

    Функция GrdCodeInit позволяет преобразовать пароль для его дальнейшего использования в функциях GrdEnCode и GrdDeCode. Адрес буфера, содержащего преобразуемый пароль, задает параметр pKeyBuf. Длина пароля фиксирована и должна составлять 32 байта. Для преобразования пароля должен использоваться специальный аппаратный алгоритм Stealth I типа Fast; его порядковый номер задается в параметре dwAddr. В случае успешного выполнения функции по адресу, заданному в pKeyBuf, будет помещен преобразованный пароль.

    Переменная dwCnvType задает метод быстрого взаимообратного преобразования, который будет использоваться в операциях GrdEnCode и GrdDeCode.

    Пример для используемого средства разработки см. в директории:

    "\%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\x86\Win32\General Guardant API\"
    или
    "\%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\x64\Win64\General Guardant API\"

    • No labels