{"record":{"id":"efa19096eeee7fcd","repo":"sqlmapproject/sqlmap","slug":"firebird-server-did-not-offer-a-supported-wire-cry","errorCode":null,"errorMessage":"Firebird server did not offer a supported wire-crypt plugin","messagePattern":"Firebird server did not offer a supported wire-crypt plugin","errorType":"exception","errorClass":"NotSupportedError","httpStatus":null,"severity":"error","filePath":"extra/dbwire/firebird.py","lineNumber":833,"sourceCode":"        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\")\n    wire.send(_pack_int(_op_crypt) + _pack_bytes(enc_plugin) + _pack_bytes(b\"Symmetric\"))\n    if enc_plugin in (b\"ChaCha\", b\"ChaCha64\"):\n        k = hashlib.sha256(session_key).digest()\n        wire.set_ciphers(_ChaCha20(k, nonce), _ChaCha20(k, nonce))\n    elif enc_plugin == b\"Arc4\":\n        wire.set_ciphers(_ARC4(session_key), _ARC4(session_key))\n    else:\n        raise NotSupportedError(\"unsupported Firebird wire-crypt plugin %r\" % enc_plugin)\n    _read_response(wire, user, password)  # first encrypted message\n    return session_key\n\ndef _read_response(wire, user, password):\n    # a bare op_response reader used during the login handshake (before a Connection exists)\n    op = wire.recv_int()\n    while op == _op_dummy:\n        op = wire.recv_int()\n    if op == _op_cont_auth:\n        raise OperationalError(\"Firebird authentication failed\")","sourceCodeStart":815,"sourceCodeEnd":851,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/extra/dbwire/firebird.py#L815-L851","documentation":"Error \"Firebird server did not offer a supported wire-crypt plugin\" thrown in sqlmapproject/sqlmap.","triggerScenarios":"Thrown at extra/dbwire/firebird.py:833 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"}