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;
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.
file: /Techref/os/win/api/win32/struc/src/str10_10.htm, 4KB, , updated: 2000/4/7 11:20, local time: 2024/11/23 18:51,
18.191.62.68:LOG IN
|
©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://massmind.org/Techref/os/win/api/win32/struc/src/str10_10.htm"> LS_CHALLDATA</A> |
Did you find what you needed? |
Welcome to massmind.org! |
Welcome to massmind.org! |
.