sqlmapproject/sqlmap · error · NotSupportedError

unsupported Firebird auth plugin %r

Error message

unsupported Firebird auth plugin %r

What it means

Error "unsupported Firebird auth plugin %r" thrown in sqlmapproject/sqlmap.

Source

Thrown at extra/dbwire/firebird.py:813

    op = wire.recv_int()
    while op == _op_dummy:
        op = wire.recv_int()
    if op == _op_reject:
        raise OperationalError("Firebird connection rejected")
    if op == _op_response:
        _parse_response(wire)  # will raise the server error
        raise OperationalError("Firebird connection rejected")

    wire.recv(12)  # accept block: protocol version / architecture / type (not needed once lazy-send is off)
    if op == _op_accept:
        return b""  # plaintext, no encryption negotiated

    data = wire.recv_bytes()
    plugin_name = wire.recv_bytes()
    wire.recv_int()          # is_authenticated
    wire.recv_bytes()        # keys
    if plugin_name not in (b"Srp256", b"Srp"):
        raise NotSupportedError("unsupported Firebird auth plugin %r" % plugin_name)
    if not data:
        raise OperationalError("Firebird server sent no SRP challenge")

    salt_len = _le(data[:2])
    salt = data[2:2 + salt_len]
    # the server sends B as a hex integer, dropping a leading zero nibble when its top nibble is 0 (odd-length
    # hex ~5% of the time) - parse it as an integer, which is length-agnostic (byte-pairing would corrupt it)
    server_public = int(data[4 + salt_len:].decode("ascii"), 16)
    hash_algo = hashlib.sha256 if plugin_name == b"Srp256" else hashlib.sha1
    proof, session_key = _srp_client_proof(_normalize_user(user).encode("utf-8"),
                                           password.encode("utf-8"), salt,
                                           public_key, server_public, private_key, hash_algo)

    wire.send(_pack_int(_op_cont_auth) + _pack_bytes(_hex(proof)) + _pack_bytes(plugin_name) +
              _pack_bytes(b"Srp256,Srp,Legacy_Auth") + _pack_bytes(b""))
    buf = _read_response(wire, user, password)

    enc_plugin, nonce = _guess_wire_crypt(buf)

View on GitHub (pinned to 0a35b20e39)

When it happens

Trigger: Thrown at extra/dbwire/firebird.py:813 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26). Data as JSON: /api/errors/95bdd1b85165ed91. Report an issue: GitHub.