Sheriff employs a so-called challenge mechanism to provide extra security. Your application can challenge Sheriff to verify
that the it is original and has not been tampered with; Sheriff can also challenge back to verify that the calling
application is original and has not been tampered with. Challenge also ensures that the parameters cannot be altered
en-route.
Challenge can be enabled to add an extra level of security to the following functions: SLS_License, SLS_Request, SLS_Update and SLS_Release. To enable the challenge mode, you need to set the challenge protocol to SLS_BASIC_PROTOCOL. For example: SLS_CHALLENGE Challenge; Challenge.Protocol=SLS_BASIC_PROTOCOL; Challenge.Size=sizeof(SLS_CHALLDATA); Challenge.ChallengeData.SecretIndex=nSecretIndex; Challenge.ChallengeData.Random=nRandom; If you prefer not to enable challenge mode, all you need to do is to set the challenge protocol to SLS_NO_PROTOCOL. But please note that challenge must be implemented in calling function SLS_License. To create a challenge, call SLS_CreateChallenge with your product Secret Codes and the input data stream; to verify a challenge, call SLS_VerifyChallenge. If CSheriff class is used, calling SetSecrets method with your product Secret Codes will automatically enable the challenge mode. Otherwise, it is not enabled. |