mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-06-07 23:03:54 +02:00
219 lines
7.9 KiB
Python
219 lines
7.9 KiB
Python
from __future__ import annotations
|
|
|
|
import asyncio
|
|
import copy
|
|
|
|
import pytest
|
|
|
|
import main
|
|
from services.mesh import (
|
|
mesh_private_outbox,
|
|
mesh_private_release_worker,
|
|
mesh_private_transport_manager,
|
|
)
|
|
|
|
|
|
def _request(path: str):
|
|
from starlette.requests import Request
|
|
|
|
return Request(
|
|
{
|
|
"type": "http",
|
|
"headers": [],
|
|
"client": ("test", 12345),
|
|
"method": "GET",
|
|
"path": path.split("?", 1)[0],
|
|
"query_string": path.split("?", 1)[1].encode("utf-8") if "?" in path else b"",
|
|
}
|
|
)
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def _isolated_private_delivery(monkeypatch):
|
|
store = {}
|
|
|
|
def _read_domain_json(_domain, _filename, default_factory, **_kwargs):
|
|
payload = store.get("payload")
|
|
if payload is None:
|
|
return default_factory()
|
|
return copy.deepcopy(payload)
|
|
|
|
def _write_domain_json(_domain, _filename, payload, **_kwargs):
|
|
store["payload"] = copy.deepcopy(payload)
|
|
|
|
monkeypatch.setattr(mesh_private_outbox, "read_sensitive_domain_json", _read_domain_json)
|
|
monkeypatch.setattr(mesh_private_outbox, "write_sensitive_domain_json", _write_domain_json)
|
|
mesh_private_release_worker.reset_private_release_worker_for_tests()
|
|
mesh_private_outbox.reset_private_delivery_outbox_for_tests()
|
|
mesh_private_transport_manager.reset_private_transport_manager_for_tests()
|
|
mesh_private_outbox.private_delivery_outbox._load()
|
|
monkeypatch.setattr(
|
|
mesh_private_transport_manager.private_transport_manager,
|
|
"_kickoff_background_bootstrap",
|
|
lambda **_kwargs: False,
|
|
)
|
|
monkeypatch.setattr(main, "_kickoff_dm_send_transport_upgrade", lambda: None)
|
|
monkeypatch.setattr(main, "_kickoff_private_control_transport_upgrade", lambda: None)
|
|
yield store
|
|
mesh_private_release_worker.reset_private_release_worker_for_tests()
|
|
mesh_private_outbox.reset_private_delivery_outbox_for_tests()
|
|
mesh_private_transport_manager.reset_private_transport_manager_for_tests()
|
|
|
|
|
|
def test_no_release_occurs_before_durable_outbox_commit(monkeypatch):
|
|
writes = {"count": 0}
|
|
deposit_calls = []
|
|
|
|
def _write_then_fail(_domain, _filename, payload, **_kwargs):
|
|
writes["count"] += 1
|
|
if writes["count"] == 1:
|
|
raise OSError("durable queue commit failed")
|
|
|
|
monkeypatch.setattr(mesh_private_outbox, "write_sensitive_domain_json", _write_then_fail)
|
|
monkeypatch.setattr(
|
|
"services.wormhole_supervisor.get_transport_tier",
|
|
lambda: "private_strong",
|
|
)
|
|
monkeypatch.setattr(mesh_private_release_worker, "_secure_dm_enabled", lambda: False)
|
|
monkeypatch.setattr(mesh_private_release_worker, "_rns_private_dm_ready", lambda: False)
|
|
monkeypatch.setattr(mesh_private_release_worker, "_maybe_apply_dm_relay_jitter", lambda: None)
|
|
monkeypatch.setattr(
|
|
"services.mesh.mesh_dm_relay.dm_relay.deposit",
|
|
lambda **kwargs: deposit_calls.append(kwargs) or {"ok": True, "msg_id": kwargs["msg_id"]},
|
|
)
|
|
|
|
with pytest.raises(OSError, match="durable queue commit failed"):
|
|
main._queue_dm_release(
|
|
current_tier="public_degraded",
|
|
payload={
|
|
"msg_id": "dm-commit-fail-1",
|
|
"sender_id": "alice",
|
|
"recipient_id": "bob",
|
|
"delivery_class": "request",
|
|
"ciphertext": "ciphertext",
|
|
"timestamp": 1,
|
|
},
|
|
)
|
|
|
|
mesh_private_release_worker.private_release_worker.run_once()
|
|
|
|
assert mesh_private_outbox.private_delivery_outbox.has_pending() is False
|
|
assert mesh_private_outbox.private_delivery_outbox.list_items(limit=10) == []
|
|
assert deposit_calls == []
|
|
|
|
|
|
def test_repeated_worker_runs_and_restart_do_not_double_deliver(monkeypatch):
|
|
deposit_calls = []
|
|
|
|
monkeypatch.setattr(
|
|
"services.wormhole_supervisor.get_transport_tier",
|
|
lambda: "private_strong",
|
|
)
|
|
monkeypatch.setattr(mesh_private_release_worker, "_secure_dm_enabled", lambda: False)
|
|
monkeypatch.setattr(mesh_private_release_worker, "_rns_private_dm_ready", lambda: False)
|
|
monkeypatch.setattr(mesh_private_release_worker, "_maybe_apply_dm_relay_jitter", lambda: None)
|
|
monkeypatch.setattr(
|
|
"services.mesh.mesh_dm_relay.dm_relay.deposit",
|
|
lambda **kwargs: deposit_calls.append(kwargs) or {"ok": True, "msg_id": kwargs["msg_id"]},
|
|
)
|
|
|
|
queued = main._queue_dm_release(
|
|
current_tier="public_degraded",
|
|
payload={
|
|
"msg_id": "dm-adversarial-restart-1",
|
|
"sender_id": "alice",
|
|
"recipient_id": "bob",
|
|
"delivery_class": "request",
|
|
"ciphertext": "ciphertext",
|
|
"timestamp": 1,
|
|
},
|
|
)
|
|
|
|
mesh_private_release_worker.private_release_worker.run_once()
|
|
mesh_private_release_worker.private_release_worker.run_once()
|
|
|
|
mesh_private_release_worker.reset_private_release_worker_for_tests()
|
|
mesh_private_outbox.reset_private_delivery_outbox_for_tests()
|
|
mesh_private_outbox.private_delivery_outbox._load()
|
|
mesh_private_release_worker.private_release_worker.run_once()
|
|
|
|
items = mesh_private_outbox.private_delivery_outbox.list_items(limit=10, exposure="diagnostic")
|
|
item = next(item for item in items if item["id"] == queued["outbox_id"])
|
|
|
|
assert len(deposit_calls) == 1
|
|
assert item["release_state"] == "delivered"
|
|
assert mesh_private_outbox.private_delivery_outbox.has_pending() is False
|
|
|
|
|
|
def test_ordinary_status_diagnostic_probe_remains_coarse_when_unauthenticated(monkeypatch):
|
|
monkeypatch.setattr(main, "_check_scoped_auth", lambda *_args, **_kwargs: (False, "no"))
|
|
monkeypatch.setattr(main, "_is_debug_test_request", lambda *_args, **_kwargs: False)
|
|
monkeypatch.setattr(
|
|
main,
|
|
"get_wormhole_state",
|
|
lambda: {
|
|
"installed": True,
|
|
"configured": True,
|
|
"running": True,
|
|
"ready": True,
|
|
"arti_ready": True,
|
|
"rns_ready": True,
|
|
},
|
|
)
|
|
|
|
result = asyncio.run(main.api_wormhole_status(_request("/api/wormhole/status?exposure=diagnostic")))
|
|
|
|
assert result == {
|
|
"installed": True,
|
|
"configured": True,
|
|
"running": True,
|
|
"ready": True,
|
|
}
|
|
|
|
|
|
def test_malformed_persisted_outbox_state_does_not_widen_ordinary_view(_isolated_private_delivery):
|
|
_isolated_private_delivery["payload"] = {
|
|
"version": 1,
|
|
"updated_at": 1,
|
|
"items": [
|
|
{
|
|
"id": "outbox-malicious-1",
|
|
"lane": "dm",
|
|
"release_key": "msg-malicious-1",
|
|
"payload": {"msg_id": "msg-malicious-1", "peer_id": "bob"},
|
|
"status": {"code": "delivered_privately", "label": "Delivered privately"},
|
|
"required_tier": "private_strong",
|
|
"current_tier": "private_strong",
|
|
"release_state": "delivered",
|
|
"attempts": 1,
|
|
"created_at": 1.0,
|
|
"updated_at": 1.0,
|
|
"released_at": 1.0,
|
|
"last_error": "sensitive internal error",
|
|
"result": {
|
|
"selected_transport": "relay",
|
|
"selected_carrier": "relay",
|
|
"dispatch_reason": "private_relay_delivery",
|
|
"hidden_transport_effective": False,
|
|
"payload": {"ciphertext": "secret"},
|
|
"event": {"node_id": "secret-node"},
|
|
"msg_id": "msg-malicious-1",
|
|
},
|
|
}
|
|
],
|
|
}
|
|
mesh_private_outbox.reset_private_delivery_outbox_for_tests()
|
|
mesh_private_outbox.private_delivery_outbox._load()
|
|
|
|
ordinary = mesh_private_outbox.private_delivery_outbox.list_items(limit=10)[0]
|
|
|
|
assert ordinary["release_key"] == ""
|
|
assert ordinary["result"] == {}
|
|
assert ordinary["last_error"] == ""
|
|
assert ordinary["meta"] == {
|
|
"msg_id": "",
|
|
"event_id": "",
|
|
"gate_id": "",
|
|
"peer_id": "",
|
|
}
|