import sys import pathlib # Ensure repository root is on sys.path so tests can import the package sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1])) from cosmic_ledger.delta import DeltaLog, verify_delta_block def test_export_and_verify_delta_block_with_signature(): dl = DeltaLog() # add a few payloads for i in range(4): dl.add_entry({"v": i}) key = b'unique-test-key-xyz' block = dl.export_delta_block(since_index=0, signer_key=key) assert "root" in block assert "digests" in block assert "aggregated_sig" in block assert block["aggregated_sig"] is not None # verify should succeed with correct key assert verify_delta_block(block, signer_key=key) def test_verify_delta_block_tamper_detection(): dl = DeltaLog() for i in range(3): dl.add_entry({"v": i}) key = b'another-key-123' block = dl.export_delta_block(since_index=0, signer_key=key) # tamper with a digest if block["digests"]: block["digests"][0] = ("0" if block["digests"][0][0] != "0" else "1") + block["digests"][0][1:] assert not verify_delta_block(block, signer_key=key)