Пример #1
0
if (isset($nonce) && (strlen($nonce) < 16 || strlen($nonce) > 40)) {
    $myLog->log(LOG_NOTICE, 'Nonce too short or too long');
    sendResp(S_MISSING_PARAMETER, $myLog);
}
/**
 * Timestamp parameter is not checked since current protocol
 *	says that 1 means request timestamp and anything else is discarded.
 */
/**
 * Initialize the sync library. Strive to use this instead of custom
 *	DB requests, custom comparisons etc.
 */
$sync = new SyncLib('ykval-verify:synclib');
$sync->addField('ip', $ipaddr);
$sync->addField('otp', $otp);
if (!$sync->isConnected()) {
    sendResp(S_BACKEND_ERROR, $myLog);
}
if (($cd = $sync->getClientData($client)) === FALSE) {
    $myLog->log(LOG_NOTICE, "Invalid client id {$client}");
    sendResp(S_NO_SUCH_CLIENT, $myLog);
}
$myLog->log(LOG_DEBUG, 'Client data:', $cd);
/**
 * Check client signature
 */
$apiKey = $cd['secret'];
$apiKey = base64_decode($apiKey);
unset($cd);
if ($h != '') {
    // Create the signature using the API key