- Created by Guardant Tech, last modified on Apr 05, 2014
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 2 Next »
Функция GrdProtect устанавливает аппаратные запреты на чтение и запись, а также количество аппаратных алгоритмов и адрес таблицы лицензий LMS.
C
int GRD_API GrdProtect(
HANDLE hGrd,
DWORD dwWrProt,
DWORD dwRdProt,
DWORD dwNumFunc,
DWORD dwTableLMS,
DWORD dwGlobalFlags,
void *pReserved
);
C#
Visual Basic
Visual C++
Для ключей Guardant Sign/Time | |||||||||||||
hGrd | хэндл, для которого будет выполнена операция | ||||||||||||
dwWrProt | SAM-адрес первого байта, доступного для записи (в байтах) | ||||||||||||
dwRdProt | SAM-адрес первого байта, доступного для чтения (в байтах) | ||||||||||||
dwNumFunc | количество аппаратных алгоритмов и защищенных ячеек (Protected Item), дескрипторы которых записаны в память ключа | ||||||||||||
dwTableLMS | Номер защищенной ячейки, в которой хранится таблица лицензий LMS. Для локальных ключей не используется (значение должно быть равно 0) | ||||||||||||
dwGlobalFlags | Описание флагов dwGlobalFlags:
| ||||||||||||
pReserved | зарезервировано. Значение должно быть равно NULL |
Для ключей Guardant Stealth III/Net III | |
hGrd | хэндл, для которого будет выполнена операция |
dwWrProt | SAM-адрес первого байта, доступного для записи (в байтах) |
dwRdProt | SAM-адрес первого байта, доступного для чтения (в байтах) |
dwNumFunc | количество аппаратных алгоритмов и защищенных ячеек (Protected Item), дескрипторы которых записаны в память ключа |
dwTableLMS | Номер защищенной ячейки, в которой хранится таблица лицензий LMS. Для локальных ключей не используется (значение должно быть равно 0) |
dwGlobalFlags | зарезервировано. Значение должно быть равно 0 |
pReserved | зарезервировано. Значение должно быть равно NULL |
Для ключей Guardant Stealth II/Net II и Guardant Stealth /Net | |
hGrd | хэндл, через который будет выполнена данная операция |
dwWrProt | SAM-адрес первого байта, доступного для записи (в байтах). Адрес должен быть четным, в противном случае возвращается ошибка GrdE_InvalidArg |
dwRdProt | SAM-адрес первого байта, доступного для чтения (в байтах). Адрес должен быть четным, в противном случае возвращается ошибка GrdE_InvalidArg |
dwNumFunc | количество аппаратных алгоритмов, дескрипторы которых записаны в память ключа |
dwTableLMS | Для Guardant Net II: SAM-адрес в двухбайтовых словах первого байта таблицы лицензий LMS. Если LMS не используется или ключ Guardant Stealth II, значение должно быть равно 0 |
dwGlobalFlags | зарезервировано. Значение должно быть равно 0 |
pReserved | зарезервировано. Значение должно быть равно NULL |
Для ключей Guardant Fidus | |
hGrd | хэндл, для которого будет выполнена операция |
dwWrProt | SAM-адрес первого байта, доступного для записи (в байтах). Адрес должен быть четным, в противном случае возвращается ошибка GrdE_InvalidArg |
dwRdProt | SAM-адрес первого байта, доступного для чтения (в байтах). Адрес должен быть четным, в противном случае возвращается ошибка GrdE_InvalidArg |
dwNumFunc | параметр игнорируется, должен быть равен 0 |
dwTableLMS | параметр игнорируется, должен быть равен 0 |
dwGlobalFlags | зарезервировано. Значение должно быть равно 0 |
pReserved | зарезервировано. Значение должно быть равно NULL |
GrdE_VerifyError | Ошибка верификации после нескольких повторов; запись прекращена |
GrdE_CRCErrorWrite | Ошибка CRC; запись прекращена |
Функция GrdProtect позволяет установить аппаратные запреты на чтение/запись заданной области памяти ключа, а также назначить в ключе количество аппаратных алгоритмов и защищенных ячеек (Protected Item). Для сетевых ключей Guardant Net II/III, в случаях когда используется система управления лицензиями, функция также задает адрес (для Net II) или номер защищенной ячейки (для Net III), где хранится таблица лицензий LMS.
Аппаратные запреты можно устанавливать на непрерывную область памяти ключа, начиная с адреса 44 SAM. Параметр dwWrProt задает адрес первого байта, не защищенного от записи. Если значение параметра равно 0, это означает отсутствие запретов на запись. Параметр dwRdProt задает адрес первого байта, не защищенного от чтения. Если значение параметра равно 0, это означает отсутствие запретов на чтение.
Параметр dwNumFunc задает количество аппаратных алгоритмов в ключе, а также (для Guardant Stealth III) защищенных ячеек, включая таблицу лицензий LMS. Все эти алгоритмы и защищенные ячейки должны быть предварительно созданы, т.е. в память ключа должны быть записаны их дескрипторы.
Параметр dwTableLMS задает SAM-адрес первого байта таблицы лицензий LMS (для Guardant Net I/II) или номер защищенной ячейки, в которой хранится таблица лицензий LMS (для Guardant Net III).
Функция GrdProtect используется на завершающем этапе реорганизации памяти сетевого ключа «вручную» (без помощи программы GRDUTIL). Сначала функцией GrdInit память ключа инициализируется, затем в нее заносится таблица размещения алгоритмов, дескрипторы алгоритмов и защищенных ячеек. И, наконец, функцией GrdProtect устанавливаются запреты на память, занятую дескрипторами, и назначается количество созданных в ключе алгоритмов и защищенных ячеек.
Программа GRDUTIL позволяет проделать ту же работу быстрее и проще, поэтому не рекомендуется пользоваться функциями GrdInit и GrdProtect без особой необходимости.
Пример для используемого средства разработки см. в директории:
"\%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