The LSAPI functions support multiple challenge/response protocols for license authentication. Every challenge/response protocol has an assigned 32-bit protocol identifier. Protocols in the range of zero through 0x0000FFFF, and 0xFFFFFFFF, are reserved for LSAPI. LSAPI tags the application challenge with the protocol identifier, and the license system tags the response with the protocol that answers the challenge.
Because the LSAPI standard provides for multiple challenge/response protocols, it requires a tag field that identifies the protocol the application uses. LSAPI defines a standard basic challenge protocol that all LSAPI-compliant license systems support, the LS_BASIC_PROTOCOL.
The LSAPI standard also requires a basic data structure format. The main structure in the basic challenge protocol is LS_CHALLENGE. All challenge/response protocols support this structure. The LSRequest and LSUpdate functions use it for both the application challenge and the license system response.
The LSAPI also recognizes another protocol: LS_OUT_OF_BAND_PROTOCOL. This protocol permits the license server to authenticate itself to the application, using an out-of-band challenge/response protocol that is available to an application by means external to the LSAPI, when such means are available. When the protocol specified is LS_OUT_OF_BAND_PROTOCOL, there is no challenge and no response.
For additional information about these protocols, see LSAPI Constants.