Out of Band Protocol

LSAPI accommodates multiple protocols by tagging the challenge with a protocol ID. Likewise, the response comes back tagged with the protocol that answered the challenge. The basic challenge/response mechanism is known by the tag LS_BASIC_PROTOCOL.

There is one other mechanism that LSAPI specifies: LS_OUT_OF_BAND_PROTOCOL. The purpose is to let the license server authenticate itself to the application by means external to the LSAPI, when such means are available. For example, when LSRequest() is bound as a remote procedure call authenticated through Kerberos, there is likely to be no need for additional authentication through an LSAPI-specified mechanism. In other words, the challenge and response are null, with the server returning whether or not the license is granted through the status flag.

When Protocol of the LS_CHALLENGE data structure is LS_OUT_OF_BAND_PROTOCOL, there is no challenge and no response.