public function verify(string $hmac, self $auth, int $driftAllowance = 90) : bool
    {
        $drift = $this->getTimeDrift($auth->getDate());
        if ($drift === null || $drift >= $driftAllowance) {
            return false;
        }

        try {
            if (\sodium_memcmp($hmac, $auth->getHMAC()) === 0) {
                return true;
            }
        } catch (\SodiumException $e) {
            return false;
        }

        return false;
    }