Skip to content

python: parity with Rust, fixtures, frozen rows, heap hygiene #1393

Open

Description

@yujiyokoo

Created with Claude Code from the spec in #1341.

Parent

Sub-issue of #1341. Ticket 12 of 14.

What to build

Proof that the Python SDK and the Rust engine produce and read the same bytes, and that this build's rows stay readable.

  • A parity binary in the core crate (Rust) and a pytest (Python) seal the same values under the same credentials; the equality terms are byte-identical and each side opens the other's rows.
  • The four cross-language fixtures the Go SDK uses derive the same bytes from Python.
  • Frozen rows: stored rows produced by this build are committed as fixtures and a test opens them, so a later build that cannot is red.
  • Heap hygiene: a test over the extension's copies asserts that plaintext passed to encrypt is not findable in the process heap after the call returns (same approach as the Go SDK's hygiene test).

Acceptance criteria

  • Parity test passes on the live job: identical terms, cross-open in both directions.
  • The four fixtures pass from Python with the same expected bytes as Go.
  • Frozen-row fixtures are committed with the engine commit they were made under; the test is live (needs the keyset) and gated like the other live tests.
  • Heap-hygiene test passes on Linux in CI; documented as advisory on other platforms if it cannot run there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    SDKready-for-agentFully specified and ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions