Skip to content

SealStack SDK 0.1.4

Latest

Choose a tag to compare

@unempyd unempyd released this 21 Sep 17:08
· 3 commits to main since this release

SealStack SDK 0.1.4

What changed:

  • The exporter parses input bundles with the same strict parser as the verifier: duplicate keys, NaN/Infinity and out-of-range numbers are rejected instead of being re-signed (SPEC-RECEIPT.md Section 3).
  • DEFAULT_BASE_URL removed. AuditClient requires base_url= or SEALSTACK_API_URL and raises ValueError naming both otherwise, before creating a state directory. The old fallback named a domain this project does not operate.
  • 32 native conformance vectors published as JSON (sdk/tests/fixtures/native-vectors.json), including re-signed cases using the public test seeds; the limitations text published as exact bytes; a standalone golden evidence bundle for zero-setup verification.
  • The noa export is tested against the noa project's independent Python verifier (impl-py/noa_verify.py, commit 025ee2cc); COMPATIBILITY.md records the result. A CI job rebuilds the AERF, obsigna and noa verifiers from pinned versions and re-runs the interoperability tests.
  • README rewritten: verify a receipt in 60 seconds with unedited output, then break it; what is proved and what is not; interoperability results with exact verifier versions; no hosted service is described anywhere.
  • SECURITY.md, the reference-server README and its module text no longer refer to a hosted service; the security contact is shown as text so it is not auto-linked.

Why: no verifier defect was found in the audit; the public evidence was thinner than the implementation, one exporter path did not apply a MUST of the format, and the compiled-in fallback URL had to go.

Proof: the public suite passes with the four upstream verifiers (AERF at tag and main, obsigna 0.16.0, noa 025ee2cc) and without them; ruff and mypy --strict clean; the README's verification block is reproduced from a wheel-only install.

Compatibility: native format unchanged (golden vector bytes identical); exports unchanged; product import and command remain aliases of sealstack. Breaking: a client that set neither base_url nor SEALSTACK_API_URL now raises instead of contacting a third-party domain.

Security implications: none new. Removing the fallback URL closes a latent exposure where an unconfigured client would have sent its bearer token to a domain outside the project.

Migration: set base_url= or SEALSTACK_API_URL to the origin of the server you run (for example the reference server, http://127.0.0.1:8000).