proofbundle 4.0.0__tar.gz → 5.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {proofbundle-4.0.0 → proofbundle-5.1.0}/MANIFEST.in +26 -0
- proofbundle-5.1.0/Makefile +71 -0
- {proofbundle-4.0.0/src/proofbundle.egg-info → proofbundle-5.1.0}/PKG-INFO +43 -42
- {proofbundle-4.0.0 → proofbundle-5.1.0}/README.md +40 -39
- proofbundle-5.1.0/conformance/agent_review/_generator/build_vectors.py +362 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-foreign-key-cannot-supersede-our-receipt/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-foreign-key-cannot-supersede-our-receipt/chain.json +22 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-superseded-predecessor-must-still-be-present/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-a-superseded-predecessor-must-still-be-present/chain.json +13 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-anchored-time-needs-evidence/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-anchored-time-needs-evidence/predicate.json +66 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-assurance-cannot-be-self-raised/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-assurance-cannot-be-self-raised/predicate.json +66 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-complete-needs-an-expectation/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-complete-needs-an-expectation/predicate.json +62 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-duplicate-disclosure-block-fails-closed/body.json +3 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-duplicate-disclosure-block-fails-closed/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-findings-root-covers-the-list/case.json +19 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-findings-root-covers-the-list/envelope.json +9 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-gap-duty-cannot-be-switched-off/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-gap-duty-cannot-be-switched-off/predicate.json +58 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-introducing-the-first-block-moves-the-digest/bodies.json +4 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-introducing-the-first-block-moves-the-digest/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-partial-must-name-its-gap/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-partial-must-name-its-gap/predicate.json +63 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-receipt-does-not-travel-between-subjects/case.json +19 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-counter-proof-receipt-does-not-travel-between-subjects/envelope.json +9 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-absent-expectation-is-reported/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-absent-expectation-is-reported/envelope.json +9 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-emit-verify-roundtrip/case.json +18 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-emit-verify-roundtrip/predicate.json +49 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-prepare-then-fill-keeps-the-digest/bodies.json +4 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-prepare-then-fill-keeps-the-digest/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-rerendered-block-keeps-body-core/bodies.json +4 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-rerendered-block-keeps-body-core/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-supersession-names-the-current-receipt/case.json +16 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-supersession-names-the-current-receipt/chain.json +22 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-valid-self-declared/case.json +19 -0
- proofbundle-5.1.0/conformance/agent_review/agent-review-positive-control-valid-self-declared/envelope.json +9 -0
- proofbundle-5.1.0/conformance/agent_review/publickey.hex +1 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/common_vocabulary.py +18 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/cross_format.py +5 -2
- proofbundle-5.1.0/conformance/envelope_profile/generate_vectors.py +239 -0
- proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-float-is-refused-so-two-axes-cannot-arise/case.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-float-is-refused-so-two-axes-cannot-arise/objects.json +8 -0
- proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-nonconformant-serializer-diverges/case.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r1-counter-proof-nonconformant-serializer-diverges/object.json +11 -0
- proofbundle-5.1.0/conformance/envelope_profile/r1-positive-control-canonical-root/case.json +17 -0
- proofbundle-5.1.0/conformance/envelope_profile/r1-positive-control-canonical-root/object.json +11 -0
- proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-foreign-schema-id-is-refused-not-invalid/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-foreign-schema-id-is-refused-not-invalid/case.json +15 -0
- proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-unverifiable-is-invalid-not-refused/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r2-counter-proof-unverifiable-is-invalid-not-refused/case.json +15 -0
- proofbundle-5.1.0/conformance/envelope_profile/r2-positive-control-known-schema-classifies-valid/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r2-positive-control-known-schema-classifies-valid/case.json +15 -0
- proofbundle-5.1.0/conformance/envelope_profile/r3-counter-proof-hand-signed-binding-lies-about-tree-size/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r3-counter-proof-hand-signed-binding-lies-about-tree-size/case.json +15 -0
- proofbundle-5.1.0/conformance/envelope_profile/r3-positive-control-coherent-sample-binding/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r3-positive-control-coherent-sample-binding/case.json +15 -0
- proofbundle-5.1.0/conformance/envelope_profile/r4-counter-proof-issuer-is-not-the-signing-key/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r4-counter-proof-issuer-is-not-the-signing-key/case.json +15 -0
- proofbundle-5.1.0/conformance/envelope_profile/r4-positive-control-issuer-is-the-signing-key/bundle.json +16 -0
- proofbundle-5.1.0/conformance/envelope_profile/r4-positive-control-issuer-is-the-signing-key/case.json +15 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/manifest.json +74 -37
- proofbundle-5.1.0/conformance/provenance/version-status-absent-legacy-receipt/case.json +15 -0
- proofbundle-5.1.0/conformance/provenance/version-status-absent-legacy-receipt/provenance.json +4 -0
- proofbundle-5.1.0/conformance/provenance/version-status-lookalike-version-field/case.json +15 -0
- proofbundle-5.1.0/conformance/provenance/version-status-lookalike-version-field/provenance.json +6 -0
- proofbundle-5.1.0/conformance/provenance/version-status-missing-reason/case.json +17 -0
- proofbundle-5.1.0/conformance/provenance/version-status-missing-reason/provenance.json +3 -0
- proofbundle-5.1.0/conformance/provenance/version-status-not-bound/case.json +15 -0
- proofbundle-5.1.0/conformance/provenance/version-status-not-bound/provenance.json +5 -0
- proofbundle-5.1.0/conformance/provenance/version-status-not-reported/case.json +15 -0
- proofbundle-5.1.0/conformance/provenance/version-status-not-reported/provenance.json +5 -0
- proofbundle-5.1.0/conformance/provenance/version-status-not-reported-with-field/case.json +17 -0
- proofbundle-5.1.0/conformance/provenance/version-status-not-reported-with-field/provenance.json +5 -0
- proofbundle-5.1.0/conformance/provenance/version-status-reported/case.json +15 -0
- proofbundle-5.1.0/conformance/provenance/version-status-reported/provenance.json +5 -0
- proofbundle-5.1.0/conformance/provenance/version-status-reported-without-field/case.json +17 -0
- proofbundle-5.1.0/conformance/provenance/version-status-reported-without-field/provenance.json +3 -0
- proofbundle-5.1.0/conformance/provenance/version-status-unknown-literal/case.json +17 -0
- proofbundle-5.1.0/conformance/provenance/version-status-unknown-literal/provenance.json +3 -0
- proofbundle-5.1.0/conformance/provenance/version-status-unrelated-status-field/case.json +15 -0
- proofbundle-5.1.0/conformance/provenance/version-status-unrelated-status-field/provenance.json +6 -0
- proofbundle-5.1.0/conformance/run_conformance.py +721 -0
- proofbundle-5.1.0/conformance/unshipped_spec_refs_baseline.json +23 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/vector_schema.json +76 -19
- proofbundle-5.1.0/docs/AGENT_REVIEW_PREDICATE.md +187 -0
- proofbundle-5.1.0/docs/RECEIPT_ENVELOPE_PROFILE.md +240 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/MANIFEST.sha256 +2 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/PROGRESS.md +1 -1
- proofbundle-5.1.0/docs/readiness_pack/index.json +270 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/proofbundle/readiness_pack.bundle.json +4 -4
- proofbundle-5.1.0/docs/readiness_pack/proofbundle/readiness_pack.pub.b64 +1 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/pyproject.toml +49 -3
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/decision-receipt-v0.1.schema.json +14 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/eval_claim_v0_1.schema.json +1 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/audit_candidate_matrix.py +153 -10
- proofbundle-5.1.0/scripts/audit_output_aufloesbar.py +133 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/fuzz_soak.py +6 -3
- proofbundle-5.1.0/scripts/gate_qualification_harness.py +841 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/mutation_check.py +12 -4
- proofbundle-5.1.0/scripts/mutation_operators_fresh.py +106 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/pre_tag_audit_gate.py +93 -25
- proofbundle-5.1.0/scripts/pre_tag_receipt.py +172 -0
- proofbundle-5.1.0/scripts/pre_tag_receipt_lib.py +123 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/rust_parity_gate.py +91 -15
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/rust_parity_registry.json +227 -131
- proofbundle-5.1.0/scripts/shipped_docs_check.py +132 -0
- proofbundle-5.1.0/scripts/type_confusion_gate.py +702 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/__init__.py +1 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/_integration.py +10 -4
- proofbundle-5.1.0/src/proofbundle/_membership.py +79 -0
- proofbundle-5.1.0/src/proofbundle/_wire_b64.py +91 -0
- proofbundle-5.1.0/src/proofbundle/adapters/_provenance.py +255 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/eee.py +5 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/inspect_ai.py +19 -7
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/lm_eval.py +23 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/promptfoo.py +19 -2
- proofbundle-5.1.0/src/proofbundle/agent_review.py +2337 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors.py +2 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_ots.py +32 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_rfc3161.py +18 -5
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_rootcommit.py +2 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/automation_verdict.py +27 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/budget.py +76 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/bundle.py +39 -14
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/checkpoint.py +51 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/cli.py +38 -17
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/decision.py +40 -4
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/dsse.py +2 -4
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/emit.py +23 -3
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/evalclaim.py +55 -6
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/experimental/enclave.py +2 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/hf_evals.py +3 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/inspect_hook.py +14 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/kbjwt.py +38 -3
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/merkle.py +38 -5
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/outcome.py +2 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/persample.py +38 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policy_profiles.py +6 -5
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/public_transparency.py +2 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/pytest_plugin.py +6 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/relation.py +2 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/relation_statement.py +3 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/renewal.py +208 -25
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/run_ledger.py +3 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/sdjwt.py +4 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/sdjwt_issue.py +13 -4
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/sdjwt_vc.py +16 -3
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/statuslist.py +2 -1
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/tlogproof.py +20 -7
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/verification_summary.py +4 -3
- {proofbundle-4.0.0 → proofbundle-5.1.0/src/proofbundle.egg-info}/PKG-INFO +43 -42
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/SOURCES.txt +147 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/requires.txt +2 -2
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/conftest.py +174 -15
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/MANIFEST.json +45 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_at_submit.txt +16 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_latest.txt +16 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_witnessed.txt +16 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/inclusion_path.txt +9 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/leaf.txt +1 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/proof_bundle.json +28 -0
- proofbundle-5.1.0/tests/fixtures/anchors/markovian_log/submit_7727/submit_response.json +13 -0
- proofbundle-5.1.0/tests/fixtures/inspect_logs/safety_refusal_demo.eval.provenance.json +15 -0
- proofbundle-5.1.0/tests/fixtures/kette_147/body_wie_am_ziel.md +29 -0
- proofbundle-5.1.0/tests/fixtures/kette_147/receipt.json +9 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_adapters.py +24 -0
- proofbundle-5.1.0/tests/test_agent_review_binding_semantics.py +367 -0
- proofbundle-5.1.0/tests/test_agent_review_conformance_runner.py +443 -0
- proofbundle-5.1.0/tests/test_agent_review_statement_shape.py +202 -0
- proofbundle-5.1.0/tests/test_agent_review_zeitsemantik.py +290 -0
- proofbundle-5.1.0/tests/test_anchor_extra_arg_type_confusion.py +119 -0
- proofbundle-5.1.0/tests/test_anchors_markovian_submit.py +194 -0
- proofbundle-5.1.0/tests/test_anchors_ots_frozen_rptrust_guard.py +98 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_audit_candidate_360.py +51 -2
- proofbundle-5.1.0/tests/test_audit_candidate_ready_logic.py +62 -0
- proofbundle-5.1.0/tests/test_audit_matrix_version_pin_binding.py +155 -0
- proofbundle-5.1.0/tests/test_audit_output_aufloesbar.py +133 -0
- proofbundle-5.1.0/tests/test_ausgelieferte_doku_haelt.py +170 -0
- proofbundle-5.1.0/tests/test_automation_nie_nachsichtiger_als_ok.py +436 -0
- proofbundle-5.1.0/tests/test_beide_verifier_pfade_antworten_gleich.py +104 -0
- proofbundle-5.1.0/tests/test_classify_eval_claim.py +183 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cli_eval.py +49 -0
- proofbundle-5.1.0/tests/test_dokumentierte_laeufer_koennen_die_suite_fahren.py +427 -0
- proofbundle-5.1.0/tests/test_emitter_parser_rundlauf.py +158 -0
- proofbundle-5.1.0/tests/test_evidence_typed_digest.py +179 -0
- proofbundle-5.1.0/tests/test_findings_root_bindet_die_liste.py +143 -0
- proofbundle-5.1.0/tests/test_gate_population_and_nested_leaf.py +205 -0
- proofbundle-5.1.0/tests/test_gate_qualification_harness.py +320 -0
- proofbundle-5.1.0/tests/test_gegenbeweis_zeigt_nicht_ins_leere.py +109 -0
- proofbundle-5.1.0/tests/test_inspect_hook.py +175 -0
- proofbundle-5.1.0/tests/test_int_magnitude_budget_family.py +120 -0
- proofbundle-5.1.0/tests/test_iter9_deepgate_round4.py +167 -0
- proofbundle-5.1.0/tests/test_iter9_product_fixes.py +80 -0
- proofbundle-5.1.0/tests/test_jede_formpruefung_nennt_ihren_grund.py +853 -0
- proofbundle-5.1.0/tests/test_jeder_code_meint_genau_eine_lage.py +724 -0
- proofbundle-5.1.0/tests/test_jeder_gegenbeweis_faellt_auf_seiner_achse.py +90 -0
- proofbundle-5.1.0/tests/test_kappe_vor_arbeit.py +141 -0
- proofbundle-5.1.0/tests/test_kette_verliert_kein_gueltiges_receipt.py +88 -0
- proofbundle-5.1.0/tests/test_korpus_arten_haben_eine_quelle.py +67 -0
- proofbundle-5.1.0/tests/test_korpus_stammt_aus_seinem_generator.py +91 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_load_signer_fd_hazard.py +72 -0
- proofbundle-5.1.0/tests/test_membership_hashable_guard.py +257 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_surface_family_property.py +169 -2
- proofbundle-5.1.0/tests/test_p05_kette_ereignis_bis_offline_verify.py +133 -0
- proofbundle-5.1.0/tests/test_p0_2_disclosure_core_digest.py +273 -0
- proofbundle-5.1.0/tests/test_p0_4_coverage_und_zeit.py +196 -0
- proofbundle-5.1.0/tests/test_p0_urspruengliche_mutationen.py +224 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pre_tag_audit_provenance.py +24 -17
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pre_tag_gate_eigenschaften.py +7 -5
- proofbundle-5.1.0/tests/test_pre_tag_receipt_commit_flow.py +99 -0
- proofbundle-5.1.0/tests/test_pre_tag_receipt_gate.py +117 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pytest_plugin.py +14 -0
- proofbundle-5.1.0/tests/test_render_safe_untrusted_int.py +127 -0
- proofbundle-5.1.0/tests/test_renewal_field_magnitude_never_raise.py +166 -0
- proofbundle-5.1.0/tests/test_reported_version_status.py +387 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_roadmap_frontload_foundations.py +24 -8
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_rust_parity_gate.py +14 -4
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdist_selftest_derivation.py +95 -0
- proofbundle-5.1.0/tests/test_sdist_selftest_optional_deps.py +89 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_vc.py +28 -0
- proofbundle-5.1.0/tests/test_type_confusion_wireform.py +133 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_verify_proof_expected_origin.py +52 -3
- proofbundle-5.1.0/tests/test_wire_bytes_strict.py +217 -0
- proofbundle-5.1.0/tests/test_wurzelsammlung_schliesst_bauartefakte_aus.py +97 -0
- proofbundle-5.1.0/tests/test_zeitsemantik_policy_und_supersession.py +370 -0
- proofbundle-4.0.0/conformance/run_conformance.py +0 -353
- proofbundle-4.0.0/docs/readiness_pack/index.json +0 -110
- proofbundle-4.0.0/docs/readiness_pack/proofbundle/readiness_pack.pub.b64 +0 -1
- proofbundle-4.0.0/scripts/type_confusion_gate.py +0 -301
- proofbundle-4.0.0/src/proofbundle/adapters/_provenance.py +0 -91
- proofbundle-4.0.0/tests/test_inspect_hook.py +0 -57
- {proofbundle-4.0.0 → proofbundle-5.1.0}/LICENSE +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-fails-expected-root/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-fails-expected-root/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-verifies-no-policy/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/coherent-rewrap-verifies-no-policy/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/corrupted-signature/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/corrupted-signature/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/duplicate-json-key/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/duplicate-json-key/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/forged-anchor-own-frozen/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/forged-anchor-own-frozen/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/n1-eval-sdjwt-graft-non-eval/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/n1-eval-sdjwt-graft-non-eval/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-forged-issuer-identity/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-forged-issuer-identity/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-signed-but-unbound/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-signed-but-unbound/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-unsigned-unauthenticated/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/sd-jwt-unsigned-unauthenticated/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tampered-payload/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tampered-payload/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tree-size-expectation-mismatch/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/tree-size-expectation-mismatch/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/valid-minimal/bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/bundle/valid-minimal/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.jcs +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.jcs.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/evidence_eval_result.jcs +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/canonicalization-root-binding/evidence_eval_result.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.jcs +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.jcs.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/evidence_eval_result.jcs +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/evidence_eval_result.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/decision_receipt.jcs +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/decision_receipt.jcs.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/decision_receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/evidence_eval_result.jcs +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/decision/crossimpl/schema-conformant/evidence_eval_result.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-supersedes-verified/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-unresolved/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-unresolved/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/declared-unresolved/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-accept-path/related_rx.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-correct-pass/related_rx.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-no-pin-old-behavior/related_rx.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/decoy-parent-target-mismatch/related_rx.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_001.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_002.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_003.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_004.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_005.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_006.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_007.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_008.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_009.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_010.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_011.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_012.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_013.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_014.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_015.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_016.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_017.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_018.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_019.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_020.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_021.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_022.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_023.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_024.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_025.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_026.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_027.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_028.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_029.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_030.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_031.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_032.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/depth-exceeded/related_033.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/digest-mismatch/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/generate_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/malformed-digest/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/malformed-digest/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/malformed-digest/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-declared-supersedes-verified/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-decoy-parent-target-mismatch/related_rx.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-digest-mismatch/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-relation-signer-unauthorized/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-renews/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-silent-landing/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-silent-landing/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-silent-landing/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-valid-baseline/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-valid-baseline/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/outcome-valid-baseline/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-amends/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-corrects/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-derivedfrom/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-retracts/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-revises/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-unauthorized/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-cross-issuer-verified/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-same-key-explicit/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/relation-signer-verified-under-not-claim/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/renews-vector/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/retracts-then-use/related_r.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/silent-landing/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/silent-landing/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/silent-landing/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-malformed/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-malformed/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-malformed/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-declared-unresolved/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-declared-unresolved/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-declared-unresolved/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-unauthorized/related_t.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/policy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-blocked/related_t.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-retracts-verified-visible/related_t.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/statement-supersedes-verified/related_t.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/t1-canonical-invalid-signature/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/t1-canonical-invalid-signature/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/t1-canonical-invalid-signature/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-ambiguous/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-correct-pass/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-mismatch/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/target-subject-missing/related_r0.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/unauthorized-signer/related_b.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/valid-baseline/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/valid-baseline/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/valid-baseline/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/case.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/pub.b64 +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/receipt.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/conformance/relation/wrong-payloadtype-target/related_t.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/adr/renewal_policy.example.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/AUDITOR_OPEN_POINTS.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/OPEN_QUESTIONS.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/REPRODUCTION_RUNBOOK.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/calendar_independence.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/differential_matrix.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/rust_parity_scope.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/tamper_resistance.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/docs/readiness_pack/threat_model_delta_360.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/anchors/chia-datalayer-invalid-root.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/anchors/chia-datalayer-valid.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/checkpoint_example.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_allow.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_deny.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_escalate.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/decision_receipt_with_eval_ref.intoto.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/eee_receipt.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/example.tlog-proof +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/example_bundle.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/experimental_enclave.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/inspect_hook_example.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/inspect_receipt.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/private-model-commitment.statement.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/public-model.statement.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/release-gate.statement.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto/svr.statement.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/intoto_dsse_export.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/lm_eval_receipt.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/make_example.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/persample_audit.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/pytest_plugin_example.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/rekor_interop.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/tlog_proof_example.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/trust_policy_decision_strict.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/examples/trust_policy_strict.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/formal/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/formal/model.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/action-outcome-v0.1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/in_toto_statement_v1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/proofbundle_v0_1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/run-ledger-v0.1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/trust-pack-v0.1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/trust_policy_v0_1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/schemas/verification-summary-v0.1.schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/_build_anchor_fixture.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/branch_base_check.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/build_reproducible.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/check_version_and_changelog.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/claims_hygiene_check.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/demo.sh +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/demo_tamper.sh +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/doc_link_check.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/finding_base_drift.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/findings_register.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/fork_pr_secret_isolation.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/gen_findings_register.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/gen_synthetic_ots_fixture.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/git-hooks/pre-commit +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/install_git_hooks.sh +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/mutant_signature_guard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/pre_tag_attestation.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/readiness_pack_gate.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/readiness_pack_manifest.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/render_demo.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/scripts/test_manifest_gate.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/setup.cfg +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/_inspect_registry.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/_strict_json.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/__init__.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/adapters/samples.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_chia.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_chia_add.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/anchors_markovian.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/assurance.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/beacon.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/canonical.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/demo.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/eee_eval_schema.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/errors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/evalcard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/evidence_pack.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/experimental/__init__.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/hashalg.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/intoto.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/decision-receipt-template-v1.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/research-preview-v1.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/strict-eval-authenticated-root-template-v1.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/strict-eval-template-v1.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policies/strict-prereg-template-v1.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/policy.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/pqsig.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/prereg.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/py.typed +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/signature.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/subject_binding.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle/trust_pack.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/dependency_links.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/entry_points.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/src/proofbundle.egg-info/top_level.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/_beinahe_treffer.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/chia_datalayer_proof.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/freetsa_receipt_anchor.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/checkpoint_7397/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/checkpoint_7397/checkpoint_7397.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/ERGEBNIS.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/ERGEBNIS_negativ.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/SOURCES.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/keys_unabhaengig.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/leaf_7271.raw +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/markovian_log/proof_7271/proof_7271.tlog-proof +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/MANIFEST.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/manifest.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-01-valid.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-02-tampered-root.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-03-tampered-wallet.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-04-tampered-proof.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/manifest.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-01-valid.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-02-tampered-root.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-03-tampered-wallet.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-04-tampered-sig.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-05-tampered-proof.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/01-valid.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/02-unknown-id.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/03-tampered-body.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/04-tampered-proof.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/manifest.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/PROVENANCE.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/gosumdb_known_keys.go +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/rekor_v2_checkpoint.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/sumdb_latest.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/checkpoint/trusted_root.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ed25519_speccheck_cases.LICENSE +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ed25519_speccheck_cases.README.md +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ed25519_speccheck_cases.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/eee_arc_easy.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/inspect_logs/safety_refusal_demo.eval +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/lm_eval_arc_easy_real.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/markovian_anchor_confirmed.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/mldsa_acvp/PROVENANCE.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/mldsa_acvp/mldsa_sigver_slice.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/PROVENANCE.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/block358391.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/hello-world.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/hello-world.txt.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/incomplete.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/incomplete.txt.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/known-and-unknown-notary.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/known-and-unknown-notary.txt.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/merkle2.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/merkle2.txt.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/synthetic-upgraded-sha256.block.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/synthetic-upgraded-sha256.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/synthetic-upgraded-sha256.txt.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/two-calendars.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/ots/two-calendars.txt.ots +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/promptfoo_results_v3.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/rekor_inclusion_25579.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/rfc6962_vectors.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwt_disclosure_vector.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwt_reference_eddsa.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwtvc/PROVENANCE.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwtvc/sdjwtvc_examples.txt +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/fixtures/sdjwtvc/sdjwtvc_issuer_pubkey.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_adversarial.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchor_hardening_321.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchor_longevity_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchor_target_trustedtime.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_chia.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_chia_add.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_chia_claims.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_generic.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_markovian.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_markovian_log.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_ots.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_rfc3161.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_rfc3161_type_floor.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_anchors_rootcommit.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_assurance.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_audit_index_zahlen_stimmen.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_audit_marker_line_wrap.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_automation_verdict.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_beacon.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_branch_base_check.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_budget.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bughunt_361_automation_failopen.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bughunt_361_never_raise.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bundle.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_bundle_robustness.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_canonical.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_checkpoint.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_checkpoint_external_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_checkpoint_quorum_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_claims_hygiene.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cli.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cli_require_anchor.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_conformance.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_conformance_retention_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_content_root_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cosignature.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cosignature_mldsa.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_cross_format_singleton_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_anchors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_cli.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_evidence.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_fuzz.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_hardening.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_policy.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_schema.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_validator_api.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_decision_verify.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_demo.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_docs_truth.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_dsse_adversarial.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_dup_key_reject.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ed25519_semantics.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_eee.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_emit.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_enclave_assurance.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_erwartungsvergleich_population_guard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_eval_claim_schema.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_eval_evidence_class.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_evalcard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_evalclaim.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_evidence_pack.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_examples.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_experimental_enclave.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_findings_register_identity_axis.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_findings_register_rt10.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_fork_pr_secret_isolation.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_fuzz_parsers.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_fuzz_soak_regression.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_hashalg.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_hf_entry_verify_eee_digest.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_hf_evals.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_claims_hygiene.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_content_root_migration.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_dsse.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_eval_result.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_examples.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_spec_diff.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_intoto_svr.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_jcs_mandatory_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_kbjwt.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_legacy_assurance_deprecation_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_lens_review_fixes_3_1_3.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_manifest_lock.json +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_merkle.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_merkle_consistency_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_merkle_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_mldsa_acvp_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_mutant_signature_guard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_mutation_isolation.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_population_guard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_primary_arg_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_never_raise_recursion_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_official_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ok_semantics.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_origin_quorum_rule.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ots_calendar_hardening.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_ots_external_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_outcome_receiver_corroboration.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_outcome_verify.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_oversized_int_guard.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_path_argument_type_floor.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_persample.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pinned_key_validation.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_explain_lint.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_lifecycle_purpose.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_profiles.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_policy_templates.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pqsig.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_pre_tag_attestation.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_predicate_type_enforcement.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_prereg.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_promptfoo.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_provenance.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_public_transparency.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_rekor_interop.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_gate_distance_invariance.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_profile.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_property.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_same_key_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_signer_target_340.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_statement.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_statement_rust_parity.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_relation_subject_pin_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_release_integrity_gate.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal_external_token_glue.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal_policy.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_renewal_signed.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_reproducible_build_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_rfc6962_external_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_root_authenticity.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_run_ledger.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_schema.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_schema_parity.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdist_packaging_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_adversarial.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_duplicate_cnf.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_issue.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_reference.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_resource_budget.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwt_verify_binding.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sdjwtvc_external_vectors.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_sibling_never_raise_361.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_signature.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_statuslist.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_structural_budget_reachability.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_subject_binding.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_tlogproof.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_tree_context_authenticity.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack_crypto_agility.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack_outcome_receivers_role.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_pack_payloadtype_negatives.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_trust_policy.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_verification_summary.py +0 -0
- {proofbundle-4.0.0 → proofbundle-5.1.0}/tests/test_verify_matrix.py +0 -0
|
@@ -25,6 +25,32 @@ graft conformance
|
|
|
25
25
|
graft formal
|
|
26
26
|
graft docs/readiness_pack
|
|
27
27
|
include docs/adr/renewal_policy.example.json
|
|
28
|
+
|
|
29
|
+
# PB-2026-0831-01: the receipt-envelope profile and its vectors landed on main in #159, but the
|
|
30
|
+
# profile document itself was NOT in the sdist and NOT in the wheel — measured, 0 hits in both.
|
|
31
|
+
# NO prune or exclude rule removed it. MANIFEST.in is an allowlist and the file was simply not on
|
|
32
|
+
# any line; it was missing by absence, not by exclusion. That distinction matters: looking for the
|
|
33
|
+
# offending prune rule would have found nothing and left the file out.
|
|
34
|
+
#
|
|
35
|
+
# The vectors under conformance/envelope_profile/ were already shipped by `graft conformance`
|
|
36
|
+
# (21 of 21 files, 10 of 10 case.json, measured). Only the prose document was missing, and it is
|
|
37
|
+
# the half a reader needs to know what the vectors prove.
|
|
38
|
+
#
|
|
39
|
+
# Named by exact path rather than `graft docs`, for the same reason the ADR example above is: a
|
|
40
|
+
# blanket graft would also ship documents whose internal links point at pruned repo files, which
|
|
41
|
+
# breaks test_docs_truth from the sdist.
|
|
42
|
+
include docs/RECEIPT_ENVELOPE_PROFILE.md
|
|
43
|
+
# Same reason, measured 01.09.2026: 14 conformance cases under conformance/agent_review/
|
|
44
|
+
# cite this file NORMATIVELY (`specRef`), and it was not shipped — the corpus referred to a
|
|
45
|
+
# document the installed package did not contain. It carries no local links, so it cannot
|
|
46
|
+
# break test_docs_truth the way a `graft docs` would.
|
|
47
|
+
include docs/AGENT_REVIEW_PREDICATE.md
|
|
48
|
+
# PB-2026-0902-01: der sdist enthielt `conformance/` (94 Faelle, `graft conformance`), aber NICHT
|
|
49
|
+
# das Makefile, ueber das die Doku den Korpus fahren laesst. Wer den sdist auspackt und
|
|
50
|
+
# `make conformance` ruft, bekommt "No rule to make target" — der Korpus ist da und
|
|
51
|
+
# unerreichbar. Gefunden von der as-shipped-Linse des Tiefen-Gates am 02.09.2026. Wie schon bei
|
|
52
|
+
# `RECEIPT_ENVELOPE_PROFILE.md`: keine prune-Regel entfernte es, es stand auf keiner Zeile.
|
|
53
|
+
include Makefile
|
|
28
54
|
graft scripts
|
|
29
55
|
|
|
30
56
|
# Never ship: the Rust verifier + build artifacts, repo/CI meta, caches, VCS, big review packs.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
.PHONY: test lint typecheck demo tamper-demo persample-demo full-demo mutation examples conformance conformance-crossimpl all coverage
|
|
2
|
+
|
|
3
|
+
PYTHON ?= python3
|
|
4
|
+
|
|
5
|
+
# EIN ZIEL, DAS IM AUSGELIEFERTEN ZUSTAND NICHT LAUFEN KANN, MUSS DAS SAGEN — nicht scheitern.
|
|
6
|
+
#
|
|
7
|
+
# GEMESSEN am 02.09.2026 (adversariale as-shipped-Linse): `include Makefile` machte alle 13 Ziele
|
|
8
|
+
# zu ausgelieferten Versprechen. Sieben laufen aus dem sdist nicht, und `conformance-crossimpl`
|
|
9
|
+
# scheiterte an einem fehlenden Verzeichnis, waehrend sein Kommentar "needs cargo" sagte — die
|
|
10
|
+
# falsche Vorbedingung. `prune tools` ist richtig; die MELDUNG war es nicht.
|
|
11
|
+
#
|
|
12
|
+
# Der Wachtposten ist EINE Zeile je Ziel und nennt die Vorbedingung im Klartext, statt eine
|
|
13
|
+
# Shell-Fehlermeldung ueber ein fehlendes Verzeichnis zu produzieren.
|
|
14
|
+
# EIN SHELL-AUFRUF, kein zweizeiliger Wachtposten.
|
|
15
|
+
#
|
|
16
|
+
# Die erste Fassung war eine EIGENE Rezeptzeile mit `|| { echo …; exit 0; }`. Gemessen aus dem
|
|
17
|
+
# entpackten sdist: sie meldete die Vorbedingung KORREKT — und make fuhr die naechste Zeile
|
|
18
|
+
# trotzdem, weil jede Rezeptzeile ihre eigene Shell hat und `exit 0` nur diese verlaesst. Das Ziel
|
|
19
|
+
# scheiterte danach genau wie vorher, jetzt nur mit einer beruhigenden Zeile davor. Ein Riegel,
|
|
20
|
+
# der ankuendigt und dann durchlaesst, ist schlimmer als keiner. Deshalb umschliesst die Bedingung
|
|
21
|
+
# den GANZEN Rumpf in EINER Zeile.
|
|
22
|
+
CHECKOUT_FEHLT = echo "== $@: skipped — needs a source checkout, not the shipped package."; \
|
|
23
|
+
echo " Why: tools/ and .github/ are deliberately pruned from the sdist (MANIFEST.in)."; \
|
|
24
|
+
echo " How: run this target from a source checkout of the repository."
|
|
25
|
+
|
|
26
|
+
test: ## needs pytest (in the [test] extra) — it is the only runner that sees this suite
|
|
27
|
+
$(PYTHON) -m pytest -q
|
|
28
|
+
|
|
29
|
+
lint: ## needs `pip install ruff` — deliberately NOT in the [test] extra
|
|
30
|
+
ruff check .
|
|
31
|
+
|
|
32
|
+
typecheck: ## needs `pip install mypy` — deliberately NOT in the [test] extra
|
|
33
|
+
$(PYTHON) -m mypy src
|
|
34
|
+
|
|
35
|
+
demo: ## pip-only, offline: honest receipt verifies, tampers fail, sample swap caught (in memory)
|
|
36
|
+
PYTHONPATH=src $(PYTHON) -m proofbundle.cli demo
|
|
37
|
+
|
|
38
|
+
tamper-demo: ## the demo with an exit-code contract (fails if any guarantee breaks)
|
|
39
|
+
bash scripts/demo_tamper.sh
|
|
40
|
+
|
|
41
|
+
persample-demo: ## offline forced-random-sample audit walkthrough
|
|
42
|
+
$(PYTHON) examples/persample_audit.py
|
|
43
|
+
|
|
44
|
+
full-demo: ## real eval logs -> signed receipts -> verified OK (needs [eval,inspect] extras)
|
|
45
|
+
bash scripts/demo.sh
|
|
46
|
+
|
|
47
|
+
mutation: ## anti-Goodhart gate: the tests must KILL broken implementations (needs a source checkout: it walks the tracked file list)
|
|
48
|
+
@if [ -d tools ] && [ -d .github ]; then $(PYTHON) scripts/mutation_check.py; \
|
|
49
|
+
else $(CHECKOUT_FEHLT); fi
|
|
50
|
+
|
|
51
|
+
coverage: ## line coverage of the core over the test suite (needs `pip install coverage`)
|
|
52
|
+
$(PYTHON) -m coverage run -m pytest -q
|
|
53
|
+
$(PYTHON) -m coverage report -m --include="src/proofbundle/*"
|
|
54
|
+
|
|
55
|
+
examples: ## run every offline example (those without optional extras)
|
|
56
|
+
@for f in examples/make_example.py examples/lm_eval_receipt.py examples/eee_receipt.py \
|
|
57
|
+
examples/intoto_dsse_export.py examples/checkpoint_example.py \
|
|
58
|
+
examples/tlog_proof_example.py examples/rekor_interop.py \
|
|
59
|
+
examples/persample_audit.py; do \
|
|
60
|
+
echo "== $$f =="; PYTHONPATH=src $(PYTHON) $$f || exit 1; done
|
|
61
|
+
|
|
62
|
+
conformance: ## offline conformance corpus (anchor sub-checks need the [anchors] extra)
|
|
63
|
+
PYTHONPATH=src $(PYTHON) conformance/run_conformance.py
|
|
64
|
+
|
|
65
|
+
conformance-crossimpl: ## cross-impl acceptance gate: the independent Rust second-verifier must AGREE with Python over the verifier core (needs a source checkout AND cargo; #55 S2)
|
|
66
|
+
@if [ -d tools ] && [ -d .github ]; then \
|
|
67
|
+
( cd tools/pb_verify_rs && cargo build --release ) && \
|
|
68
|
+
PYTHONPATH=src $(PYTHON) tools/pb_verify_rs/crosscheck.py; \
|
|
69
|
+
else $(CHECKOUT_FEHLT); fi
|
|
70
|
+
|
|
71
|
+
all: lint typecheck test ## needs ruff + mypy; from the shipped package run `make test` alone
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: proofbundle
|
|
3
|
-
Version:
|
|
3
|
+
Version: 5.1.0
|
|
4
4
|
Summary: Emit and verify portable cryptographic evidence bundles, offline: Ed25519 + RFC 6962 Merkle + optional SD-JWT.
|
|
5
5
|
Author: Konrad Gruszka
|
|
6
6
|
License: MIT
|
|
@@ -51,7 +51,7 @@ Requires-Dist: jsonschema>=4; extra == "test"
|
|
|
51
51
|
Requires-Dist: sd-jwt>=0.10; extra == "test"
|
|
52
52
|
Requires-Dist: rfc8785>=0.1.4; extra == "test"
|
|
53
53
|
Provides-Extra: inspect
|
|
54
|
-
Requires-Dist: inspect_ai
|
|
54
|
+
Requires-Dist: inspect_ai<=0.3.261,>=0.3.112; extra == "inspect"
|
|
55
55
|
Provides-Extra: dev
|
|
56
56
|
Requires-Dist: pytest>=7; extra == "dev"
|
|
57
57
|
Requires-Dist: ruff<0.17,>=0.5; extra == "dev"
|
|
@@ -62,7 +62,7 @@ Requires-Dist: hypothesis>=6; extra == "dev"
|
|
|
62
62
|
Requires-Dist: rfc8785>=0.1.4; extra == "dev"
|
|
63
63
|
Requires-Dist: sd-jwt>=0.10; extra == "dev"
|
|
64
64
|
Requires-Dist: PyYAML>=6; extra == "dev"
|
|
65
|
-
Requires-Dist: inspect_ai
|
|
65
|
+
Requires-Dist: inspect_ai<=0.3.261,>=0.3.112; extra == "dev"
|
|
66
66
|
Dynamic: license-file
|
|
67
67
|
|
|
68
68
|
<div align="center">
|
|
@@ -74,12 +74,6 @@ Dynamic: license-file
|
|
|
74
74
|
|
|
75
75
|
<h1>proofbundle</h1>
|
|
76
76
|
|
|
77
|
-
**AI eval results need receipts.**
|
|
78
|
-
|
|
79
|
-
Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
|
|
80
|
-
these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
|
|
81
|
-
Merkle, one file, no server, no network.
|
|
82
|
-
|
|
83
77
|
[](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml)
|
|
84
78
|
[](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml)
|
|
85
79
|
[](https://pypi.org/project/proofbundle/)
|
|
@@ -90,10 +84,48 @@ Merkle, one file, no server, no network.
|
|
|
90
84
|
|
|
91
85
|
Scorecard **6.5/10** — [what the four zeros mean, in one sentence each](#what-the-scorecard-badge-says-including-the-parts-that-are-low)
|
|
92
86
|
|
|
87
|
+
**AI eval results need receipts.**
|
|
88
|
+
|
|
89
|
+
Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
|
|
90
|
+
these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
|
|
91
|
+
Merkle, one file, no server, no network.
|
|
92
|
+
|
|
93
93
|
**Reviewing this for adoption?** Start with the 30-minute adversarial audit path: **[docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md)**.
|
|
94
94
|
|
|
95
95
|
</div>
|
|
96
96
|
|
|
97
|
+
## Install
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
|
|
101
|
+
pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
|
|
102
|
+
pip install "proofbundle[inspect]" # inspect_ai adapter + hook
|
|
103
|
+
pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
|
|
107
|
+
`cryptography`; Merkle hashing is RFC 6962.
|
|
108
|
+
|
|
109
|
+
## 60-second try (offline)
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pip install "proofbundle[eval]"
|
|
113
|
+
proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
|
|
117
|
+
self-test.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# verify a real hosted receipt without writing any code — the verify runs fully offline:
|
|
121
|
+
curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
|
|
122
|
+
proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
|
|
126
|
+
path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
|
|
127
|
+
Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
|
|
128
|
+
|
|
97
129
|
## What the Scorecard badge says, including the parts that are low
|
|
98
130
|
|
|
99
131
|
The badge is live, so it will move. Measured 2026-08-07, re-measured 2026-08-10 with identical
|
|
@@ -128,26 +160,6 @@ measured and not yet addressed.
|
|
|
128
160
|
Publishing a middling number with its causes is the point. A project that sells evidence cannot
|
|
129
161
|
withhold its own.
|
|
130
162
|
|
|
131
|
-
## 60-second try (offline)
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
pip install "proofbundle[eval]"
|
|
135
|
-
proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
|
|
139
|
-
self-test.
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
# verify a real hosted receipt without writing any code — the verify runs fully offline:
|
|
143
|
-
curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
|
|
144
|
-
proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
|
|
148
|
-
path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
|
|
149
|
-
Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
|
|
150
|
-
|
|
151
163
|
## The problem
|
|
152
164
|
|
|
153
165
|
Every AI eval number you read — a safety benchmark, a capability score, a leaderboard entry — is an
|
|
@@ -236,18 +248,6 @@ version history (see also [CHANGELOG.md](https://github.com/b7n0de/proofbundle/b
|
|
|
236
248
|
separation (executor ≠ decision maker) — never a claim that the decision was correct.
|
|
237
249
|
[decision-receipt.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/decision-receipt.md) · [action-outcome.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/action-outcome.md)
|
|
238
250
|
|
|
239
|
-
## Install
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
|
|
243
|
-
pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
|
|
244
|
-
pip install "proofbundle[inspect]" # inspect_ai adapter + hook
|
|
245
|
-
pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
|
|
249
|
-
`cryptography`; Merkle hashing is RFC 6962.
|
|
250
|
-
|
|
251
251
|
## Post-quantum posture (honest)
|
|
252
252
|
|
|
253
253
|
proofbundle is **not** "quantum-safe" as a whole. Its hash-based layers (SHA-256, RFC 6962 / 9162
|
|
@@ -264,7 +264,8 @@ a post-quantum *payload* signature is on the roadmap. Detail: [docs/ANCHORS.md](
|
|
|
264
264
|
If proofbundle helped your evaluation pipeline, please cite it. Machine-readable metadata is in
|
|
265
265
|
[`CITATION.cff`](https://github.com/b7n0de/proofbundle/blob/main/CITATION.cff). The archival software record is on Zenodo under concept
|
|
266
266
|
DOI [10.5281/zenodo.21110642](https://doi.org/10.5281/zenodo.21110642); the Technical Note (design write-up) under concept DOI
|
|
267
|
-
[10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466)
|
|
267
|
+
[10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466) — version 4.0.0 of the Note is
|
|
268
|
+
[10.5281/zenodo.22004295](https://doi.org/10.5281/zenodo.22004295) — also linked from [b7n0de.com/proofbundle](https://b7n0de.com/proofbundle).
|
|
268
269
|
|
|
269
270
|
## Docs
|
|
270
271
|
|
|
@@ -7,12 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
<h1>proofbundle</h1>
|
|
9
9
|
|
|
10
|
-
**AI eval results need receipts.**
|
|
11
|
-
|
|
12
|
-
Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
|
|
13
|
-
these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
|
|
14
|
-
Merkle, one file, no server, no network.
|
|
15
|
-
|
|
16
10
|
[](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml)
|
|
17
11
|
[](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml)
|
|
18
12
|
[](https://pypi.org/project/proofbundle/)
|
|
@@ -23,10 +17,48 @@ Merkle, one file, no server, no network.
|
|
|
23
17
|
|
|
24
18
|
Scorecard **6.5/10** — [what the four zeros mean, in one sentence each](#what-the-scorecard-badge-says-including-the-parts-that-are-low)
|
|
25
19
|
|
|
20
|
+
**AI eval results need receipts.**
|
|
21
|
+
|
|
22
|
+
Turn an AI evaluation result into one portable, offline-verifiable receipt. It proves *who signed
|
|
23
|
+
these exact bytes* and *that nothing changed since* — not that the number is true. Ed25519 + RFC 6962
|
|
24
|
+
Merkle, one file, no server, no network.
|
|
25
|
+
|
|
26
26
|
**Reviewing this for adoption?** Start with the 30-minute adversarial audit path: **[docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md)**.
|
|
27
27
|
|
|
28
28
|
</div>
|
|
29
29
|
|
|
30
|
+
## Install
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
|
|
34
|
+
pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
|
|
35
|
+
pip install "proofbundle[inspect]" # inspect_ai adapter + hook
|
|
36
|
+
pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
|
|
40
|
+
`cryptography`; Merkle hashing is RFC 6962.
|
|
41
|
+
|
|
42
|
+
## 60-second try (offline)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install "proofbundle[eval]"
|
|
46
|
+
proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
|
|
50
|
+
self-test.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# verify a real hosted receipt without writing any code — the verify runs fully offline:
|
|
54
|
+
curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
|
|
55
|
+
proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
|
|
59
|
+
path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
|
|
60
|
+
Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
|
|
61
|
+
|
|
30
62
|
## What the Scorecard badge says, including the parts that are low
|
|
31
63
|
|
|
32
64
|
The badge is live, so it will move. Measured 2026-08-07, re-measured 2026-08-10 with identical
|
|
@@ -61,26 +93,6 @@ measured and not yet addressed.
|
|
|
61
93
|
Publishing a middling number with its causes is the point. A project that sells evidence cannot
|
|
62
94
|
withhold its own.
|
|
63
95
|
|
|
64
|
-
## 60-second try (offline)
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
pip install "proofbundle[eval]"
|
|
68
|
-
proofbundle demo # honest receipt => OK, six tampers each => FAILED, sample swap caught
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
The demo runs entirely in memory and exits non-zero if any tamper slips through, so it doubles as a
|
|
72
|
-
self-test.
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
# verify a real hosted receipt without writing any code — the verify runs fully offline:
|
|
76
|
-
curl -fsSL https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json -o receipt.json
|
|
77
|
-
proofbundle verify receipt.json # CRYPTO: OK (exit 0 ok · 1 fail · 2 malformed · 3 policy)
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Emit your own receipt, apply a trust policy, start from a shipped template, or run the Inspect-native
|
|
81
|
-
path (METR Task Standard / UK-AISI ecosystem, mockllm, no API key): **[docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md)** ·
|
|
82
|
-
Inspect walkthrough **[docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md)**.
|
|
83
|
-
|
|
84
96
|
## The problem
|
|
85
97
|
|
|
86
98
|
Every AI eval number you read — a safety benchmark, a capability score, a leaderboard entry — is an
|
|
@@ -169,18 +181,6 @@ version history (see also [CHANGELOG.md](https://github.com/b7n0de/proofbundle/b
|
|
|
169
181
|
separation (executor ≠ decision maker) — never a claim that the decision was correct.
|
|
170
182
|
[decision-receipt.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/decision-receipt.md) · [action-outcome.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/action-outcome.md)
|
|
171
183
|
|
|
172
|
-
## Install
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
pip install proofbundle # core: offline verify + plain emit (two deps: cryptography, rfc8785)
|
|
176
|
-
pip install "proofbundle[eval]" # + eval receipts, prereg, and the demo (RFC 8785 JCS canonicalizer)
|
|
177
|
-
pip install "proofbundle[inspect]" # inspect_ai adapter + hook
|
|
178
|
-
pip install "proofbundle[pq]" # verify ML-DSA-44 (post-quantum) witness cosignatures
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Requires Python 3.10+. The verify path never rolls its own crypto — Ed25519 comes from
|
|
182
|
-
`cryptography`; Merkle hashing is RFC 6962.
|
|
183
|
-
|
|
184
184
|
## Post-quantum posture (honest)
|
|
185
185
|
|
|
186
186
|
proofbundle is **not** "quantum-safe" as a whole. Its hash-based layers (SHA-256, RFC 6962 / 9162
|
|
@@ -197,7 +197,8 @@ a post-quantum *payload* signature is on the roadmap. Detail: [docs/ANCHORS.md](
|
|
|
197
197
|
If proofbundle helped your evaluation pipeline, please cite it. Machine-readable metadata is in
|
|
198
198
|
[`CITATION.cff`](https://github.com/b7n0de/proofbundle/blob/main/CITATION.cff). The archival software record is on Zenodo under concept
|
|
199
199
|
DOI [10.5281/zenodo.21110642](https://doi.org/10.5281/zenodo.21110642); the Technical Note (design write-up) under concept DOI
|
|
200
|
-
[10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466)
|
|
200
|
+
[10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466) — version 4.0.0 of the Note is
|
|
201
|
+
[10.5281/zenodo.22004295](https://doi.org/10.5281/zenodo.22004295) — also linked from [b7n0de.com/proofbundle](https://b7n0de.com/proofbundle).
|
|
201
202
|
|
|
202
203
|
## Docs
|
|
203
204
|
|