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

Compare with Current View Page History

« Previous Version 11 Next »

Функции Guardant API общего назначения

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

  • Искать электронный ключ, удовлетворяющий заданным условиям поиска
  • Инициализировать память ключа
  • Читать данные из памяти ключа
  • Записывать данные в память ключа
  • Устанавливать запреты на чтение/запись памяти ключа
  • Преобразовывать информацию при помощи аппаратных алгоритмов ключа

Перечень функций Guardant API общего назначения:

Название функции

Код доступа

Краткое описание

GrdStartup

Не нужен

Инициализировать Guardant API

GrdStartupEx

Не нужен

Инициализировать GrdAPI + задать путь к GnClient.ini

GrdCleanup

Не нужен

Деинициализировать Guardant API

GrdGetLastError

Не нужен

Получить информацию о последней ошибкеиз защищенного контейнера

GrdFormatMessage

Не нужен

Преобразовать код ошибки в текстовое сообщение

GrdGetInfo

Не нужен

Получить информацию из защищенного контейнера

GrdIsValidHandle

Не нужен

Проверить валидность хэндла защищенногоконтейнера

GrdCreateHandle

Не нужен

Создать хэндл защищенного контейнера

GrdCloseHandle

Не нужен

Закрыть хэндл защищенного контейнера

GrdSetAccessCodes

Public и Read обязательно, остальные по необходимости

Поместить коды доступа в защищенный контейнер

GrdSetWorkMode

Не нужен

Установить режимы работы Guardant API

GrdSetFindMode

Не нужен

Установить режимы поиска электронных ключей

GrdFind

Private Read

Найти электронный ключ, удовлетворяющий критериям поиска

GrdLogin

Private Read

Зарегистрироваться на электронном ключе

GrdLogout

Private Read

Снять регистрацию с электронного ключа

GrdLock

Private Read

Заблокировать ключ на время выполнения операций, требующих монопольного режима работы с ключом

GrdUnlock

Private Read

Разблокировать электронный ключ

GrdCheck

Private Read

Проверить наличие электронного ключа

GrdDecGP

Private Read+ PrivateWrite

Декрементировать счетчик GP

GrdRead

Private Read

Прочитать данные из памяти электронного ключа

GrdWrite

Private Write

Записать данные в память электронного ключа

GrdSign

Private Read

Вычислить ЭЦП массива данных

GrdVerifySign

Не нужен

Проверить ЭЦП массива данных

GrdSeek

Не нужен

Переместить указатель на текущий адрес памятиэлектронного ключа

GrdInit

Private master

Инициализировать память электронного ключа

GrdProtect

Private master

Установить аппаратные запреты чтения/записи и записать количество аппаратных алгоритмов и защищенных ячеек

GrdTransform

Private Read

Преобразовать данные аппаратно- или программно-реализованным алгоритмом

GrdTransformEx

Private Read

Преобразовать данные аппаратно- или программно-реализованным алгоритмом

GrdCrypt

Private Read

Закодировать/раскодировать данные аппаратноили программно-реализованным алгоритмом

GrdCryptEx

Private Read

Закодировать/раскодировать данные аппаратноили программно-реализованным алгоритмом

GrdHash

Private Read

Вычислить значение хэш-функции программноили аппаратно-реализованным алгоритмом

GrdHashEx

Private Read

Расширенный вариант GrdHash

GrdCodeInit

PrivateRead

Инициализировать пароль быстрого взаимообратного преобразования

GrdEnCode

не нужен

Закодировать данные быстрым взаимообратнымпреобразованием

GrdDeCode

не нужен

Раскодировать данные быстрым взаимообратнымпреобразованием

GrdCRC

не нужен

Вычислить CRC

Функции(методы) общего назначения:

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

  • Искать электронный ключ, удовлетворяющий заданным условиям поиска
  • Инициализировать память ключа
  • Читать данные из памяти ключа
  • Записывать данные в память ключа
  • Устанавливать запреты на чтение/запись памяти ключа
  • Преобразовывать информацию при помощи аппаратных алгоритмов ключа

Перечень функций Guardant API общего назначения:

Название функции

Код доступа

Краткое описание

GrdStartupEx

Не нужен

Инициализировать GrdAPI + задать путь к GnClient.ini

GrdCleanup

Не нужен

Деинициализировать Guardant API

GrdGetLastError

Не нужен

Получить информацию о последней ошибкеиз защищенного контейнера

GrdFormatMessage

Не нужен

Преобразовать код ошибки в текстовое сообщение

GrdGetInfo

Не нужен

Получить информацию из защищенного контейнера

GrdIsValidHandle

Не нужен

Проверить валидность хэндла защищенногоконтейнера

GrdCreateHandle

Не нужен

Создать хэндл защищенного контейнера

GrdCloseHandle

Не нужен

Закрыть хэндл защищенного контейнера

Работа с памятью ключа:

Название функции

Код доступа

Краткое описание

GrdSetWorkMode

Не нужен

Установить режимы работы Guardant API

GrdRead

Private Read

Прочитать данные из памяти электронного ключа

GrdWrite

Private Write

Записать данные в память электронного ключа

GrdSeek

Не нужен

Переместить указатель на текущий адрес памятиэлектронного ключа

GrdInit

Private master

Инициализировать память электронного ключа

GrdProtect

Private master

Установить аппаратные запреты чтения/записи и записать количество аппаратных алгоритмов и защищенных ячеек

Монопольная работа с ключом:

Название функции

Код доступа

Краткое описание

GrdLock

Private Read

Заблокировать ключ на время выполнения операций, требующих монопольного режима работы с ключом

GrdUnlock

Private Read

Разблокировать электронный ключ

Поиск и проверка наличия ключа:

Название функции

Код доступа

Краткое описание

GrdSetAccessCodes

Public и Read обязательно, остальные по необходимости

Поместить коды доступа в защищенный контейнер

GrdSetFindMode

Не нужен

Установить режимы поиска электронных ключей

GrdFind

Private Read

Найти электронный ключ, удовлетворяющий критериям поиска

GrdLogin

Private Read

Зарегистрироваться на электронном ключе

GrdLogout

Private Read

Снять регистрацию с электронного ключа

GrdCheck

Private Read

Проверить наличие электронного ключа

Работа с аппаратными и программно-реализованными алгоритмами:

Название функции

Код доступа

Краткое описание

GrdTransformEx

Private Read

Преобразовать данные аппаратно- или программно-реализованным алгоритмом

GrdCryptEx

Private Read

Закодировать/раскодировать данные аппаратноили программно-реализованным алгоритмом

GrdHashEx

Private Read

Расширенный вариант GrdHash

GrdSign

Private Read

Вычислить ЭЦП массива данных

GrdVerifySign

Не нужен

Проверить ЭЦП массива данных

GrdCRC

не нужен

Вычислить CRC

Функции Guardant API для работы с защищенными ячейками

Для работы с защищенными ячейками существуют специальные функции Guardant API:

Название функции

Код доступа

Краткое описание

GrdPI_Activate

Private Readи пароль на данную операцию, если он задан в ключе

Активировать алгоритм / защищенную ячейку

GrdPI_Deactivate

 

Деактивировать аппаратный алгоритмили защищенную ячейку

GrdPI_Read

 

Прочитать данные из защищенной ячейки

GrdPI_Update

 

Обновить данные в защищенной ячейке

GrdPI_GetCounter

 

Получить значение счетчика запусков алгоритма

Функции Guardant API для работы с ключами с RTC

Для работы с ключами, поддерживающими технологию Time, существуют специальные функции Guardant API:

Название функции

Код доступа

Краткое описание

GrdSetTime

Private Master

Установить время микросхемы таймера ключа

GrdGetTime

Private Read

Получить время таймера ключа

GrdPI_GetTimeLimit

Private Read

Получить оставшееся время работы алгоритма

GrdMakeSystemTime

Не нужен

Заполнить поля структуры TgrdSystemTime

GrdSplitSystemTime

Не нужен

Получить значение полей структуры TgrdSystemTime

GrdTRU_ GenerateQuestionTime

Private Read

Сгенерировать зашифрованное число-вопрос

GrdTRU_GenerateQuestionTimeEx

Private Read

Расширенная версия GrdTRU_GenerateQuestionTime

GrdTRU_ DecryptQuestionTime

Private Read

Расшифровать и проверить подлинностьчисла-вопроса

GrdTRU_DecryptQuestionTimeEx

Private Read

Расширенная версия GrdTRU_ DecryptQuestionTime

Функции Guardant API для работы с Trusted Remote Update

Технология удаленного обновления Trusted Remote Update может быть реализована не только при помощи утилит, входящих в Комплект разработчика. При желании разработчики могут встраивать поддержку этой технологии непосредственно в свои приложения, используя набор предназначенных для этой цели функций:

Название функции

Код доступа

Краткое описание

GrdTRU_SetKey

Private Master

Инициализировать память электронного ключа и записать секретный ключ TRU

GrdTRU_GenerateQuestion

Private Read

Сгенерировать число-вопрос

GrdTRU_GenerateQuestionEx

Private Read

Расширенная версия GrdTRU_GenerateQuestion

GrdTRU_DecryptQuestion

Private Read

Декодировать и проверить подлинность числа-вопроса

GrdTRU_DecryptQuestionEx

Private Read

Расширенная версия GrdTRU_DecryptQuestion

GrdTRU_SetAnswerProperties

Не нужен

Установить параметры числа-ответа

GrdTRU_EncryptAnswer

Private Read

Сгенерировать и кодировать число-ответ

GrdTRU_EncryptAnswerEx

Private Read

Расширенная версия GrdTRU_EncryptAnswer

GrdTRU_ApplyAnswer

Private Read

Записать число-ответ в ключ Guardant

 

Функции Guardant API для работы с ключами Guardant Code

См. Сервисные функции для работы с загружаемым кодом.

Внутреннее Guardant API Code для загружаемого кода

См. Guardant Code API.

Функции Guardant API для управления драйверами

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

Название функции

Краткое описание

GrdDrvInstall

Инсталлировать драйверы Guardant

GrdDrvUnInstall

Деинсталлировать драйверы Guardant

GrdDrvIsInstalled

Проверить наличие драйверов Guardant в системе

GrdDrvGetVersion

Получить версию драйверов Guardant,установленных в системе

GrdDrvSetPortUseState

Установить режимы использования порта

GrdDrvGetPortUseState

Получить текущие установленныережимы использования порта

GrdDrvSetPrnPortTimeOut

Установить значение таймаута для LPT порта

GrdDrvGetPrnPortTimeOut

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

GrdDrvSetPortProperties

Установить параметры работы с LPT портом

GrdDrvGetPortProperties

Получить текущие установленные параметры работыс LPT портом

GrdDrvSetPortPropertiesAuto

Установить параметры работы с LPT портом по умолчанию

GrdDrvGetSystemInfo

Получить системную информацию о конфигурацииLPT и USB-портов

Местонахождение файлов API

Категории файлов

Каталог с API

Заголовочные файлы

Guardant\Guardant %#%%PublicCode%\Include

Библиотеки и объектные модули

Guardant\Guardant %#%%PublicCode%\Lib

Примеры работы с Guardant API

Guardant\Guardant %#%%PublicCode%\Samples|

Коды ошибок Guardant API

Функции Guardant API, предназначенные для работы с электронными ключами, могут возвращать следующие коды ошибок:

Название ошибки

Код

Краткое описание

GrdE_Ok

0

Операция выполнена успешно

GrdE_DongleNotFound

1

Не найден ключ, отвечающий заданным условиям поиска

GrdE_AddressTooBig

3

Указанный адрес слишком велик

GrdE_Gpis0

5

Счетчик запусков GP исчерпан (значение равно нулю)

GrdE_InvalidCommand

6

Неверная команда обращения к ключу

GrdE_VerifyError

8

Ошибка верификации записи в память ключа

GrdE_NetProtocolNotFound

9

Сетевой протокол не найден

GrdE_NetResourceExhaust

10

Сетевой ресурс ключа Guardant Net исчерпан

GrdE_NetConnectionLost

11

Потеряно соединение с сервером Guardant Net

GrdE_NetDongleNotFound

12

Сервер Guardant Net не найден

GrdE_NetServerMemory

13

Ошибка распределения памяти сервера Guardant Net

GrdE_DPMI

14

Ошибка DPMI

GrdE_Internal

15

Внутренняя ошибка сервера Guardant Net

GrdE_NetServerReloaded

16

Сервер Guardant Net был перезагружен

GrdE_VersionTooOld

17

Данная команда не поддерживается данной версией ключа (ключ старой версии)

GrdE_BadDriver

18

Необходим драйвер Windows NT

GrdE_NetProtocol

19

Ошибка сетевого протокола

GrdE_NetPacket

20

Получен сетевой пакет недопустимого формата

GrdE_NeedLogin

21

Требуется регистрация на сервере Guardant Net

GrdE_NeedLogout

22

Необходимо снять регистрацию на сервере Guardant

GrdE_DongleLocked

23

Ключ Guardant Net занят другим приложением

GrdE_DriverBusy

24

Драйвер не может захватить порт

GrdE_CRCError

30

Ошибка CRC при обращении к ключу

GrdE_CRCErrorRead

31

Ошибка CRC при чтении данных из ключа

GrdE_CRCErrorWrite

32

Ошибка CRC при записи данных в ключ

GrdE_Overbound

33

Выход за границу памяти ключа

GrdE_AlgoNotFound

34

Аппаратный алгоритм с таким номеромв ключе не найден

GrdE_CRCErrorFunc

35

Ошибка CRC аппаратного алгоритма

GrdE_AllDonglesFound

36

Все ключи перебраны

GrdE_ProtocolNotSup

37

Слишком старая версия Guardant API

GrdE_InvalidCnvType

38

Задан несуществующий метод взаимообратногопреобразования

GrdE_UnknownError

39

Неизвестная ошибка при работе с алгоритмом/ячейкой, операция могла не завершиться

GrdE_AccessDenied

40

Неверный пароль доступа к защищенной ячейке

GrdE_StatusUnchangeable

41

Статус защищенной ячейки изменить нельзя

GrdE_NoService

42

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

GrdE_InactiveItem

43

Алгоритм/ячейка находятся в состоянии Inactive, команда не выполнена

GrdE_DongleServerTooOld

44

Попытка выполнить операцию, которую не поддерживает эта версия сервера Guardant Net

GrdE_DongleBusy

45

В данный момент ключ не может выполнять никаких операций

GrdE_InvalidArg

46

Задано недопустимое значение одного из аргументов функции

GrdE_MemoryAllocation

47

Ошибка распределения памяти

GrdE_InvalidHandle

48

Недопустимый хендл

GrdE_ContainerInUse

49

Этот защищенный контейнер уже используется

GrdE_Reserved50

50

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

GrdE_Reserved51

51

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

GrdE_Reserved52

52

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

GrdE_SystemDataCorrupted

53

Нарушена целостность системных данных

GrdE_NoQuestion

54

Вопрос для удаленного обновленияне был сгенерирован

GrdE_InvalidData

55

Недопустимый формат данныхдля удаленного обновления

GrdE_QuestionOK

56

Вопрос для удаленного обновления уже сгенерирован

GrdE_UpdateNotComplete

57

Процедура записи при удаленном обновлениине завершена

GrdE_InvalidHash

58

Неверное знач. хэша данных удаленного обновления

GrdE_GenInternal

59

Внутренняя ошибка

GrdE_AlreadyInitialized

60

Эта копия Guardant API уже инициализирована

GrdE_LastError

61

Неизвестная ошибка

GrdE_DuplicateNames

63

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

GrdE_AATFormatError

64

Несуществующий адрес в AAT-таблице

GrdE_SessionKeyNtGen

65

Сессионный ключ не создан

GrdE_InvalidPublicKey

66

Недействительный открытый ключ

GrdE_InvalidDigitalSign

67

Недействительная ЭЦП

GrdE_SessionKeyGenError

68

Ошибка при создании сессионного ключа

GrdE_InvalidSessionKey

69

Недействительный сессионный ключ

GrdE_SessionKeyTooOld

70

Просроченный сессионный ключ

GrdE_NeedInitialization

71

Необходима инициализация

GrdE_gcProhibitCode

72

Ошибка при проверке загружаемого кода. Адрес точки входа некорректен или обнаружены запрещенные команды или обращение к недопустимым адресам

GrdE_gcLoadableCodeTimeOut

73

Тайм-аут при выполнении загружаемого кода

GrdE_gcFlashSizeFromDescriptorTooSmall

74

В дескрипторе загружаемого кода указан недостаточный размер Flash-памяти

GrdE_Reserved75

75

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

GrdE_Reserved76

76

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

GrdE_Reserved77

77

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

GrdE_Reserved78

78

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

GrdE_Reserved79

79

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

GrdE_gcIncorrectMask

80

В дескрипторе загружаемого кода указаннедостаточный размер памяти для структуры TGrdLoadableCodeData

GrdE_gcRamOverboundInProtect

81

В дескрипторе загружаемого кода указан неверный размер RAM

GrdE_gcFlashOverboundInProtect

82

В дескрипторе загружаемого кода указан неверный размер Flash-памяти

GrdE_gcIntersectionOfCodeAreasInProtect

83

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

GrdE_gcBmapFileTooBig

84

Слишком большой размер BMAP-файла

GrdE_gcZeroLengthProgram

85

Загружаемый код имеет нулевую длину

GrdE_gcDataCorrupt

86

Ошибка при контроле целостности данных

GrdE_gcProtocolError

87

Ошибка в протоколе Guardant Code

GrdE_gcGCEXENotFound

88

Нет загруженной программы пользователя

GrdE_gcNotEnoughRAM

89

Объявленный в программе пользователяRAM-буфер ввода-вывода недостаточен для передачи\приема данных

GrdE_gcException

90

При выполнении загружаемого кода произошло нарушение защиты виртуальной среды

GrdE_gcRamOverboundInCodeLoad

91

Буфер ввода-вывода, заданный в загружаемом коде, выходит за допустимую область RAM

GrdE_gcFlashOverboundInCodeLoad

92

Загружаемый код выходит за пределы допустимой области Flash-памяти

GrdE_gcIntersectionOfCodeAreasInCodeLoad

93

Адресное пространство загружаемого кода пересекается с уже загруженным. Необходима инициализация памяти

GrdE_gcGCEXEFormatError

94

Неверный формат GCEXE файла

GrdE_gcRamAccessViolation

95

Заданы пересекающиеся области ОЗУдля запускающего и запускаемого кода

GrdE_gcCallDepthOverflow

96

Превышен уровень вложенности вызовов GcaCodeRun (<1)

GrdE_LastError

97

Общее число кодов возврата

  • No labels