|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
LS_CHALLDATA
Notice:This is preliminary documentation for technology that will be supported in future releases of Microsoft Windows.
The LS_CHALLDATA structure is passed in the LS_CHALLENGE structure. The LS_CHALLDATA structure passes the challenge from the application to the license system, and passes the response from the license system back to the application.
typedef struct _LS_CHALLDATA { LS_ULONG SecretIndex; LS_ULONG Random; LS_MSG_DIGEST MsgDigest; } LS_CHALLDATA;
Members
SecretIndex
Specifies the index of the secret value to be challenged. Note: The secret index is 1-based, so the first secret must have an index of 1.
Random
Specifies a random 32-bit value.
MsgDigest
Structure that contains the message digest that is computed by the MD4 Message-Digest Algorithm from RSA Data Security, Inc.
Remarks
In the basic challenge protocol, the application must choose the index of the secret to be challenged, and it must generate a random number. It must then compute a message digest using the MD4 Message-Digest Algorithm. The input to the algorithm is formed by concatenating the input parameters to the function being called, the random number, the index of the secret to be challenged, and the actual secret value. The first input parameter should be the name of the license service function being called, either LSRequest or LSUpdate. All parameters should be in the order specified in the prototypes for those functions, and you should exclude the values of the Challenge and LicenseHandle parameters. Copy string parameters without null terminators. The application then passes the algorithm output to the license system.
The license system authenticates the message digest and computes a new message digest consisting of the input parameters to the license service function, the output parameters, the random number, the index of the secret to be challenged, and the actual secret value. The last output parameter should be the returned status. This new message digest is passed back to the application, which, in turn, authenticates it. All parameters should be in the order specified in the prototypes for the LSRequest or LSUpdate function, and you should exclude the values of the Challenge and LicenseHandle parameters. Note that the actual secret value never passes between the application and the license system in plain text.
If the function h(x) is the algorithm that, given input x, returns the output of the MD4 Message-Digest Algorithm, then the following briefly illustrates the basic protocol. The application passes the LS_CHALLDATA structure to the license system: R, X, h(in + R + X + S (X) ) The license system passes a new LS_MSG_DIGEST to the application: h(in + out + R + X + S (X) )
where R is the random number, X is the index of the secret to be challenged, in is a byte stream that encodes the input parameters, S indicates a secret, S (X) is the actual secret value, out is a byte stream that encodes the output parameters, and + denotes concatenation. This data format can be invalid if the Protocol specified in the LS_CHALLENGE structure is not LS_BASIC_PROTOCOL. Other protocols may define their own LS_CHALLDATA format.
See Also
LS_CHALLENGE, LS_MSG_DIGEST
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
LS_CHALLDATA
Уведомление:Это - предварительная документация для технологии, которая будет поддержана в будущих версиях Microsoft Windows.
Структура LS_CHALLDATA пройдена в структуру LS_CHALLENGE. Структура LS_CHALLDATA передает вызов от приложения до лицензионной системы и передает ответ от лицензионной системы до приложения.
typedef struct _LS_CHALLDATA { LS_ULONG SecretIndex; LS_ULONG Произвольный; LS_MSG_DIGEST MsgDigest; } LS_CHALLDATA;
Участники
SecretIndex
Определяет индекс секретной величины, чтобы быть вызванн. Примечание: секретный индекс 1- базирующийся, так что первый секрет должен иметь индекс 1.
Произвольный
Определяет произвольную 32- битовую величину.
MsgDigest
Структура, которая содержит краткое изложение сообщения, которое вычислено Алгоритмом MD4 Message-Digest из Данных RSA Security, Inc.
Замечания
В основном протоколе вызова, приложение должно выбрать индекс секрета, который нужно вызываться, и это должно сгенерировать произвольное число. Это должно затем вычислять краткое изложение сообщения, использовавшее Алгоритм MD4 Message-Digest. Ввод в алгоритм сформирован конкатенирующими входными параметрами в функцию, вызыванную, произвольное число, индекс секрета, которые нужно вызываться, и фактическая секретная величина. Первый входной параметр должен быть именем лицензионной функции услуги, вызыванной, или LSRequest или LSUpdate. Все параметры должны быть в порядке определенном в прототипах для тех функций, и Вы должны исключить величины Вызова и параметров LicenseHandle. Параметры строки Копии без недействительных терминаторов. Приложение затем передает выход алгоритма в лицензионную систему.
Лицензионная система удостоверяет краткое изложение сообщения и вычисляет новое краткое изложение сообщения, состоящее из входных параметров в лицензионную функцию услуги, выходные параметры, произвольное число, индекс секрета, которые нужно вызываться, и фактическая секретная величина. Последний выходной параметр должен быть возвращанным статусом. Это новое краткое изложение сообщения пройдено в приложение, какое, в свою очередь, удостоверяет это. Все параметры должны быть в порядке определенном в прототипах для LSRequest или функции LSUpdate, и Вы должны исключить величины Вызова и параметров LicenseHandle. Отметьте, что фактическая секретная величина никогда не проходит между приложением и лицензионная система в простом тексте.
Если функция h(x), - алгоритм, что, давшее ввод x, возвращает выход Алгоритма MD4 Message-Digest, тогда следующее кратко иллюстрирует основной протокол. Приложение передает структуру LS_CHALLDATA в лицензионную систему: R, X, h(в + R + X + S (X) ) Лицензионная система передает новый LS_MSG_DIGEST в приложение: h(в + + R + X + S (X) )
где R - произвольное число, X - индекс секрета, который нужно вызывать, в - байтовый поток, который кодирует входные параметры, S указывает секрет, S (X), - фактическая секретная величина, - байтовый поток, который кодирует выходные параметры, и + обозначает конкатенацию. Этот формат данных может быть недействителен если Протокол определенный в структуре LS_CHALLENGE - не LS_BASIC_PROTOCOL. Другие протоколы могут определить свой собственный формат LS_CHALLDATA.
Смотри Также
LS_CHALLENGE, LS_MSG_DIGEST
|
|
|
|
| |