{"record":{"id":"44006887eef0d793","repo":"sqlmapproject/sqlmap","slug":"firebird-server-sent-no-srp-challenge","errorCode":null,"errorMessage":"Firebird server sent no SRP challenge","messagePattern":"Firebird server sent no SRP challenge","errorType":"exception","errorClass":"OperationalError","httpStatus":null,"severity":"error","filePath":"extra/dbwire/firebird.py","lineNumber":815,"sourceCode":"        op = wire.recv_int()\n    if op == _op_reject:\n        raise OperationalError(\"Firebird connection rejected\")\n    if op == _op_response:\n        _parse_response(wire)  # will raise the server error\n        raise OperationalError(\"Firebird connection rejected\")\n\n    wire.recv(12)  # accept block: protocol version / architecture / type (not needed once lazy-send is off)\n    if op == _op_accept:\n        return b\"\"  # plaintext, no encryption negotiated\n\n    data = wire.recv_bytes()\n    plugin_name = wire.recv_bytes()\n    wire.recv_int()          # is_authenticated\n    wire.recv_bytes()        # keys\n    if plugin_name not in (b\"Srp256\", b\"Srp\"):\n        raise NotSupportedError(\"unsupported Firebird auth plugin %r\" % plugin_name)\n    if not data:\n        raise OperationalError(\"Firebird server sent no SRP challenge\")\n\n    salt_len = _le(data[:2])\n    salt = data[2:2 + salt_len]\n    # the server sends B as a hex integer, dropping a leading zero nibble when its top nibble is 0 (odd-length\n    # hex ~5% of the time) - parse it as an integer, which is length-agnostic (byte-pairing would corrupt it)\n    server_public = int(data[4 + salt_len:].decode(\"ascii\"), 16)\n    hash_algo = hashlib.sha256 if plugin_name == b\"Srp256\" else hashlib.sha1\n    proof, session_key = _srp_client_proof(_normalize_user(user).encode(\"utf-8\"),\n                                           password.encode(\"utf-8\"), salt,\n                                           public_key, server_public, private_key, hash_algo)\n\n    wire.send(_pack_int(_op_cont_auth) + _pack_bytes(_hex(proof)) + _pack_bytes(plugin_name) +\n              _pack_bytes(b\"Srp256,Srp,Legacy_Auth\") + _pack_bytes(b\"\"))\n    buf = _read_response(wire, user, password)\n\n    enc_plugin, nonce = _guess_wire_crypt(buf)\n    if not (enc_plugin and session_key):\n        raise NotSupportedError(\"Firebird server did not offer a supported wire-crypt plugin\")","sourceCodeStart":797,"sourceCodeEnd":833,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/extra/dbwire/firebird.py#L797-L833","documentation":"Error \"Firebird server sent no SRP challenge\" thrown in sqlmapproject/sqlmap.","triggerScenarios":"Thrown at extra/dbwire/firebird.py:815 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0a35b20e3953d341be6c7ac75ccb0b3362540c8d","analyzedAt":"2026-08-26T23:02:52.002Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}