Память электронных ключей Guardant Sign / Time / Sign Net / Time Net можно логически разбить на следующие области (все адреса даны в системе адресации SAM):

  • Байты с 0 по 9 включительно недоступны для записи. Эта память используется ключом для собственных нужд. Содержимое этой памяти программируют на стадии производства ключей; она может использоваться только для чтения. При попытке записи в нее функцией API возвращается ошибка GrdE_OK. Эта память недоступна в режиме UAM.
  • Байты с 14 по 25 включительно доступны только для чтения. Там содержатся Общий код, аппаратная версия ключа, сетевой ресурс ключа, биты типов и моделей ключа и ID. Поля этой памяти полезны, когда надо определить, например, ID ключа. Данные в эту память заносятся на стадии производства ключей. При попытке записи в нее возвращается GrdE_OK. Эта память недоступна в режиме UAM.
  • Байты с 10 по 13 и с 26 по 29 включительно доступны только для операций GrdProtect и GrdInit или GrdTRU_SetKey. Содержат адреса запретов на чтение/запись, количество аппаратных алгоритмов и защищенных ячеек в ключе. При попытке записи в эту память не через GrdProtect возвращается GrdE_OK. Эта память недоступна в режиме UAM.
  • Байты с 30 по 43 включительно всегда доступны для чтения и записи и содержат т. н. поля общего назначения: номер программы, версию, серийный номер, маску, счетчик запусков GP (счетчик #1), максимальный ресурс сетевых лицензий (счетчик #2), индекс для дистанционного программирования ключа. Эти поля доступны в режиме UAM. Эти поля в основном используются для формирования параметров поиска нужного ключа и активно используются утилитами автоматической защиты.
  • Байты с 44 по 3959 включительно доступны для чтения и записи, если на них не установлен запрет, и могут использоваться для хранения данных пользователя, дескрипторов аппаратных алгоритмов и защищенных ячеек. Эти байты обнуляются при выполнении функции GrdInit или GrdTRU_SetKey.
  • Байты с 3960 по 3967 включительно зарезервированы, поэтому их не рекомендуется использовать. Доступны в режиме UAM.

 

Адрес
(SAM)

Адрес
(UAM)

Длина
(байтов)

Запрет:
R-чтения
W-записи

Имя поля

Описание поля

Системные поля

0

N/A

1

W

kmModel

Код модели ключа

1

N/A

1

W

kmMemSize

Код объема памяти. Значение поля соответствует степени, в которую нужно возвести число 2, чтобы получить объем памяти ключа в байтах

2

N/A

1

W

kmProgVer

Версия программы в ключе. Это поле может быть использовано для идентификации ключей с заказными микропрограммами

3

N/A

1

W

kmProtocol

Версия протокола обмена с ключом. Для внутреннего применения. Используется утилитами диагностики

4

N/A

2

W

kmClientVer

Версия ядра нижнего уровня. Значение 0x104 соответствует версии 1.4. Для внутреннего применения. Используется утилитами диагностики

6

N/A

1

W

kmUserAddr

SAM-адрес начала пользовательской (UAM) памяти в двухбайтовых словах

7

N/A

1

W

kmAlgoAddr

Адрес таблицы размещения защищенных ячеек в словах

8

N/A

2

W

kmPrnPort

Адрес параллельного порта, к которому подсоединен ключ. Для USB-ключей Guardant значение равно 0

10

N/A

2

W

kmWriteProtectS3

Адрес SAM первого байта, доступного для записи. Число 0 означает отсутствие запретов на запись. Запрет может быть установлен только с адреса 44 SAM (*)

12

N/A

2

 

kmReadProtectS3

Адрес SAM первого байта, доступного для чтения. Число 0 означает отсутствие запретов на чтение. Запрет может быть установлен только с адреса 44 SAM. (*)

14

N/A

4

W

kmPublicCode

Общий код в числовом виде

18

N/A

1

W

kmVersion

Аппаратная версия ключа:
биты 0-3: minor
биты 4-7: major

19

N/A

1

W

kmLANRes

Максимальный LAN ресурс ключа Guardant Net, программируемый при продаже ключа. Для локальных ключей значение равно 0

20

N/A

2

W

kmType

Биты типа ключа. Поле может участвовать в условии поиска ключа

22

N/A

4

W

kmID

ID (уникальный идентификационный номер) ключа. Может участвовать в условии поиска ключа. Записывается на стадии производства. Гарантируется, что двух ключей с одинаковыми ID не может быть. Это поле используется в специальном режиме автоматической защиты. Можно настроить приложение на ID ключа, и тогда оно будет работать только с ключом, содержащим этот ID.

26

N/A

1

W

kmWriteProtect

Не используется. Должно быть равно FFh (см. kmWriteProtectS3) (*)

27

N/A

1

W

kmReadProtect

Не используется. Должно быть равно FFh (см. kmReadProtectS3) (*)

28

N/A

1

W

kmAlgoNum

Количество защищенных ячеек (*)

29

N/A

1

W

kmTableLMS

Номер защищенной ячейки, в которой хранится таблица лицензий. В Guardant Code не используется, поскольку это локальные ключи (*)

Поля общего назначения

30

0

1

 

kmNProg

Номер программы. Может участвовать в условии поиска ключа

31

1

1

 

kmVer

Версия. Может участвовать в условии поиска ключа

32

2

2

 

kmSN

Серийный номер. Может участвовать в условии поиска ключа

34

4

2

 

kmMask

Битовая маска. Может участвовать в условии поиска ключа

36

6

2

 

kmGP

Счетчик запусков программы GP (счетчик #1). Не может участвовать в условии поиска ключа. Использование этого поля не рекомендуется

38

8

2

 

kmRealLANRes

Реальный сетевой ресурс ключа Guardant Net (счетчик #2). Не может участвовать в условии поиска ключа.

40

10

4

 

kmIndex

Индекс для удаленного программирования. Не может участвовать в условии поиска ключа.

Поля свободного назначения

44

14

3916

 

kmUserData

Начиная с этого адреса могут располагаться данные (в том числе дескрипторы алгоритмов)

Поля специального назначения

3960

3930

8

  

Это поле используется программами диагностики электронного ключа. СТРОГО не рекомендуется использовать. Не обнуляется операцией Init. Доступны в режиме UAM

 

(*) Только функции GrdInit и GrdTRU_SetKey могут обнулить значение этого поля. Запись в поле возможна только после обнуления и только функцией GrdProtect. При попытке записи в эту память не через GrdProtect возвращается GrdE_OK, но запись не производится. Эта память недоступна в режиме UAM.

  • No labels