clock->now()->getTimestamp()/$this->window; $hotp = new _4226( $this->key, $windowNum, $this->grace, $this->digits, $this->hash, -1 ); $valid = $hotp->validate($q) * $this->window; if ($valid != false && $valid <= $this->floor) { $valid = false; // TODO: OTP reuse, should be reported rather than silent failing in harder security contexts } return $valid; } } ?>