proofbundle 5.0.0__tar.gz → 5.1.0.post1__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.
Files changed (821) hide show
  1. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/MANIFEST.in +26 -0
  2. proofbundle-5.1.0.post1/Makefile +71 -0
  3. proofbundle-5.1.0.post1/PKG-INFO +287 -0
  4. proofbundle-5.1.0.post1/README.md +220 -0
  5. proofbundle-5.1.0.post1/conformance/agent_review/_generator/build_vectors.py +362 -0
  6. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-a-foreign-key-cannot-supersede-our-receipt/case.json +16 -0
  7. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-a-foreign-key-cannot-supersede-our-receipt/chain.json +22 -0
  8. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-a-superseded-predecessor-must-still-be-present/case.json +16 -0
  9. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-a-superseded-predecessor-must-still-be-present/chain.json +13 -0
  10. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-anchored-time-needs-evidence/case.json +16 -0
  11. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-anchored-time-needs-evidence/predicate.json +66 -0
  12. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-assurance-cannot-be-self-raised/case.json +16 -0
  13. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-assurance-cannot-be-self-raised/predicate.json +66 -0
  14. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-complete-needs-an-expectation/case.json +16 -0
  15. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-complete-needs-an-expectation/predicate.json +62 -0
  16. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-duplicate-disclosure-block-fails-closed/body.json +3 -0
  17. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-duplicate-disclosure-block-fails-closed/case.json +16 -0
  18. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-findings-root-covers-the-list/case.json +19 -0
  19. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-findings-root-covers-the-list/envelope.json +9 -0
  20. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-gap-duty-cannot-be-switched-off/case.json +16 -0
  21. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-gap-duty-cannot-be-switched-off/predicate.json +58 -0
  22. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-introducing-the-first-block-moves-the-digest/bodies.json +4 -0
  23. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-introducing-the-first-block-moves-the-digest/case.json +16 -0
  24. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-partial-must-name-its-gap/case.json +16 -0
  25. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-partial-must-name-its-gap/predicate.json +63 -0
  26. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-receipt-does-not-travel-between-subjects/case.json +19 -0
  27. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-counter-proof-receipt-does-not-travel-between-subjects/envelope.json +9 -0
  28. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-absent-expectation-is-reported/case.json +16 -0
  29. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-absent-expectation-is-reported/envelope.json +9 -0
  30. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-emit-verify-roundtrip/case.json +18 -0
  31. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-emit-verify-roundtrip/predicate.json +49 -0
  32. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-prepare-then-fill-keeps-the-digest/bodies.json +4 -0
  33. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-prepare-then-fill-keeps-the-digest/case.json +16 -0
  34. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-rerendered-block-keeps-body-core/bodies.json +4 -0
  35. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-rerendered-block-keeps-body-core/case.json +16 -0
  36. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-supersession-names-the-current-receipt/case.json +16 -0
  37. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-supersession-names-the-current-receipt/chain.json +22 -0
  38. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-valid-self-declared/case.json +19 -0
  39. proofbundle-5.1.0.post1/conformance/agent_review/agent-review-positive-control-valid-self-declared/envelope.json +9 -0
  40. proofbundle-5.1.0.post1/conformance/agent_review/publickey.hex +1 -0
  41. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/common_vocabulary.py +18 -0
  42. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/cross_format.py +5 -2
  43. proofbundle-5.1.0.post1/conformance/envelope_profile/generate_vectors.py +239 -0
  44. proofbundle-5.1.0.post1/conformance/envelope_profile/r1-counter-proof-float-is-refused-so-two-axes-cannot-arise/case.json +16 -0
  45. proofbundle-5.1.0.post1/conformance/envelope_profile/r1-counter-proof-float-is-refused-so-two-axes-cannot-arise/objects.json +8 -0
  46. proofbundle-5.1.0.post1/conformance/envelope_profile/r1-counter-proof-nonconformant-serializer-diverges/case.json +16 -0
  47. proofbundle-5.1.0.post1/conformance/envelope_profile/r1-counter-proof-nonconformant-serializer-diverges/object.json +11 -0
  48. proofbundle-5.1.0.post1/conformance/envelope_profile/r1-positive-control-canonical-root/case.json +17 -0
  49. proofbundle-5.1.0.post1/conformance/envelope_profile/r1-positive-control-canonical-root/object.json +11 -0
  50. proofbundle-5.1.0.post1/conformance/envelope_profile/r2-counter-proof-foreign-schema-id-is-refused-not-invalid/bundle.json +16 -0
  51. proofbundle-5.1.0.post1/conformance/envelope_profile/r2-counter-proof-foreign-schema-id-is-refused-not-invalid/case.json +15 -0
  52. proofbundle-5.1.0.post1/conformance/envelope_profile/r2-counter-proof-unverifiable-is-invalid-not-refused/bundle.json +16 -0
  53. proofbundle-5.1.0.post1/conformance/envelope_profile/r2-counter-proof-unverifiable-is-invalid-not-refused/case.json +15 -0
  54. proofbundle-5.1.0.post1/conformance/envelope_profile/r2-positive-control-known-schema-classifies-valid/bundle.json +16 -0
  55. proofbundle-5.1.0.post1/conformance/envelope_profile/r2-positive-control-known-schema-classifies-valid/case.json +15 -0
  56. proofbundle-5.1.0.post1/conformance/envelope_profile/r3-counter-proof-hand-signed-binding-lies-about-tree-size/bundle.json +16 -0
  57. proofbundle-5.1.0.post1/conformance/envelope_profile/r3-counter-proof-hand-signed-binding-lies-about-tree-size/case.json +15 -0
  58. proofbundle-5.1.0.post1/conformance/envelope_profile/r3-positive-control-coherent-sample-binding/bundle.json +16 -0
  59. proofbundle-5.1.0.post1/conformance/envelope_profile/r3-positive-control-coherent-sample-binding/case.json +15 -0
  60. proofbundle-5.1.0.post1/conformance/envelope_profile/r4-counter-proof-issuer-is-not-the-signing-key/bundle.json +16 -0
  61. proofbundle-5.1.0.post1/conformance/envelope_profile/r4-counter-proof-issuer-is-not-the-signing-key/case.json +15 -0
  62. proofbundle-5.1.0.post1/conformance/envelope_profile/r4-positive-control-issuer-is-the-signing-key/bundle.json +16 -0
  63. proofbundle-5.1.0.post1/conformance/envelope_profile/r4-positive-control-issuer-is-the-signing-key/case.json +15 -0
  64. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/manifest.json +75 -48
  65. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/run_conformance.py +328 -1
  66. proofbundle-5.1.0.post1/conformance/unshipped_spec_refs_baseline.json +23 -0
  67. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/vector_schema.json +6 -4
  68. proofbundle-5.1.0.post1/docs/AGENT_REVIEW_PREDICATE.md +187 -0
  69. proofbundle-5.1.0.post1/docs/RECEIPT_ENVELOPE_PROFILE.md +240 -0
  70. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/MANIFEST.sha256 +2 -2
  71. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/PROGRESS.md +1 -1
  72. proofbundle-5.1.0.post1/docs/readiness_pack/index.json +270 -0
  73. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/proofbundle/readiness_pack.bundle.json +4 -4
  74. proofbundle-5.1.0.post1/docs/readiness_pack/proofbundle/readiness_pack.pub.b64 +1 -0
  75. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/pyproject.toml +15 -3
  76. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/decision-receipt-v0.1.schema.json +14 -1
  77. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/audit_candidate_matrix.py +101 -6
  78. proofbundle-5.1.0.post1/scripts/audit_output_aufloesbar.py +133 -0
  79. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/check_version_and_changelog.py +64 -3
  80. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/mutation_check.py +12 -4
  81. proofbundle-5.1.0.post1/scripts/mutation_operators_fresh.py +106 -0
  82. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/rust_parity_registry.json +36 -0
  83. proofbundle-5.1.0.post1/scripts/shipped_docs_check.py +132 -0
  84. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/type_confusion_gate.py +6 -0
  85. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/__init__.py +1 -1
  86. proofbundle-5.1.0.post1/src/proofbundle/agent_review.py +2337 -0
  87. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/automation_verdict.py +27 -0
  88. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/decision.py +36 -1
  89. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/evalclaim.py +46 -0
  90. proofbundle-5.1.0.post1/src/proofbundle.egg-info/PKG-INFO +287 -0
  91. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle.egg-info/SOURCES.txt +101 -0
  92. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle.egg-info/requires.txt +2 -2
  93. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/conftest.py +174 -15
  94. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/MANIFEST.json +45 -0
  95. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_at_submit.txt +16 -0
  96. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_latest.txt +16 -0
  97. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/checkpoint_witnessed.txt +16 -0
  98. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/inclusion_path.txt +9 -0
  99. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/leaf.txt +1 -0
  100. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/proof_bundle.json +28 -0
  101. proofbundle-5.1.0.post1/tests/fixtures/anchors/markovian_log/submit_7727/submit_response.json +13 -0
  102. proofbundle-5.1.0.post1/tests/fixtures/kette_147/body_wie_am_ziel.md +29 -0
  103. proofbundle-5.1.0.post1/tests/fixtures/kette_147/receipt.json +9 -0
  104. proofbundle-5.1.0.post1/tests/test_agent_review_binding_semantics.py +367 -0
  105. proofbundle-5.1.0.post1/tests/test_agent_review_conformance_runner.py +443 -0
  106. proofbundle-5.1.0.post1/tests/test_agent_review_statement_shape.py +202 -0
  107. proofbundle-5.1.0.post1/tests/test_agent_review_zeitsemantik.py +290 -0
  108. proofbundle-5.1.0.post1/tests/test_anchors_markovian_submit.py +194 -0
  109. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_audit_matrix_version_pin_binding.py +23 -3
  110. proofbundle-5.1.0.post1/tests/test_audit_output_aufloesbar.py +133 -0
  111. proofbundle-5.1.0.post1/tests/test_ausgelieferte_doku_haelt.py +170 -0
  112. proofbundle-5.1.0.post1/tests/test_automation_nie_nachsichtiger_als_ok.py +436 -0
  113. proofbundle-5.1.0.post1/tests/test_beide_verifier_pfade_antworten_gleich.py +104 -0
  114. proofbundle-5.1.0.post1/tests/test_classify_eval_claim.py +183 -0
  115. proofbundle-5.1.0.post1/tests/test_dokumentierte_laeufer_koennen_die_suite_fahren.py +427 -0
  116. proofbundle-5.1.0.post1/tests/test_evidence_typed_digest.py +179 -0
  117. proofbundle-5.1.0.post1/tests/test_findings_root_bindet_die_liste.py +143 -0
  118. proofbundle-5.1.0.post1/tests/test_gegenbeweis_zeigt_nicht_ins_leere.py +109 -0
  119. proofbundle-5.1.0.post1/tests/test_jede_formpruefung_nennt_ihren_grund.py +853 -0
  120. proofbundle-5.1.0.post1/tests/test_jeder_code_meint_genau_eine_lage.py +724 -0
  121. proofbundle-5.1.0.post1/tests/test_jeder_gegenbeweis_faellt_auf_seiner_achse.py +90 -0
  122. proofbundle-5.1.0.post1/tests/test_kette_verliert_kein_gueltiges_receipt.py +88 -0
  123. proofbundle-5.1.0.post1/tests/test_korpus_arten_haben_eine_quelle.py +67 -0
  124. proofbundle-5.1.0.post1/tests/test_korpus_stammt_aus_seinem_generator.py +91 -0
  125. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_never_raise_surface_family_property.py +41 -0
  126. proofbundle-5.1.0.post1/tests/test_p05_kette_ereignis_bis_offline_verify.py +133 -0
  127. proofbundle-5.1.0.post1/tests/test_p0_2_disclosure_core_digest.py +273 -0
  128. proofbundle-5.1.0.post1/tests/test_p0_4_coverage_und_zeit.py +196 -0
  129. proofbundle-5.1.0.post1/tests/test_p0_urspruengliche_mutationen.py +224 -0
  130. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pre_tag_audit_provenance.py +13 -7
  131. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_roadmap_frontload_foundations.py +13 -2
  132. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdist_selftest_derivation.py +95 -0
  133. proofbundle-5.1.0.post1/tests/test_version_single_source.py +382 -0
  134. proofbundle-5.1.0.post1/tests/test_zeitsemantik_policy_und_supersession.py +370 -0
  135. proofbundle-5.0.0/PKG-INFO +0 -314
  136. proofbundle-5.0.0/README.md +0 -247
  137. proofbundle-5.0.0/docs/readiness_pack/index.json +0 -121
  138. proofbundle-5.0.0/docs/readiness_pack/proofbundle/readiness_pack.pub.b64 +0 -1
  139. proofbundle-5.0.0/src/proofbundle.egg-info/PKG-INFO +0 -314
  140. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/LICENSE +0 -0
  141. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/README.md +0 -0
  142. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/coherent-rewrap-fails-expected-root/bundle.json +0 -0
  143. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/coherent-rewrap-fails-expected-root/case.json +0 -0
  144. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/coherent-rewrap-verifies-no-policy/bundle.json +0 -0
  145. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/coherent-rewrap-verifies-no-policy/case.json +0 -0
  146. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/corrupted-signature/bundle.json +0 -0
  147. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/corrupted-signature/case.json +0 -0
  148. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/duplicate-json-key/bundle.json +0 -0
  149. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/duplicate-json-key/case.json +0 -0
  150. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/forged-anchor-own-frozen/bundle.json +0 -0
  151. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/forged-anchor-own-frozen/case.json +0 -0
  152. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/n1-eval-sdjwt-graft-non-eval/bundle.json +0 -0
  153. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/n1-eval-sdjwt-graft-non-eval/case.json +0 -0
  154. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/sd-jwt-forged-issuer-identity/bundle.json +0 -0
  155. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/sd-jwt-forged-issuer-identity/case.json +0 -0
  156. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/sd-jwt-signed-but-unbound/bundle.json +0 -0
  157. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/sd-jwt-signed-but-unbound/case.json +0 -0
  158. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/sd-jwt-unsigned-unauthenticated/bundle.json +0 -0
  159. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/sd-jwt-unsigned-unauthenticated/case.json +0 -0
  160. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/tampered-payload/bundle.json +0 -0
  161. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/tampered-payload/case.json +0 -0
  162. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/tree-size-expectation-mismatch/bundle.json +0 -0
  163. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/tree-size-expectation-mismatch/case.json +0 -0
  164. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/valid-minimal/bundle.json +0 -0
  165. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/bundle/valid-minimal/case.json +0 -0
  166. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/MANIFEST.json +0 -0
  167. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/case.json +0 -0
  168. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.jcs +0 -0
  169. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.jcs.ots +0 -0
  170. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/decision_receipt.json +0 -0
  171. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/evidence_eval_result.jcs +0 -0
  172. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/canonicalization-root-binding/evidence_eval_result.json +0 -0
  173. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/MANIFEST.json +0 -0
  174. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/case.json +0 -0
  175. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.jcs +0 -0
  176. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.jcs.ots +0 -0
  177. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/decision_receipt.json +0 -0
  178. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/evidence_eval_result.jcs +0 -0
  179. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/confirmed-anchor-lifecycle/evidence_eval_result.json +0 -0
  180. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/MANIFEST.json +0 -0
  181. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/case.json +0 -0
  182. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/decision_receipt.jcs +0 -0
  183. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/decision_receipt.jcs.ots +0 -0
  184. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/decision_receipt.json +0 -0
  185. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/evidence_eval_result.jcs +0 -0
  186. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/decision/crossimpl/schema-conformant/evidence_eval_result.json +0 -0
  187. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-absent-legacy-receipt/case.json +0 -0
  188. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-absent-legacy-receipt/provenance.json +0 -0
  189. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-lookalike-version-field/case.json +0 -0
  190. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-lookalike-version-field/provenance.json +0 -0
  191. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-missing-reason/case.json +0 -0
  192. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-missing-reason/provenance.json +0 -0
  193. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-not-bound/case.json +0 -0
  194. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-not-bound/provenance.json +0 -0
  195. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-not-reported/case.json +0 -0
  196. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-not-reported/provenance.json +0 -0
  197. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-not-reported-with-field/case.json +0 -0
  198. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-not-reported-with-field/provenance.json +0 -0
  199. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-reported/case.json +0 -0
  200. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-reported/provenance.json +0 -0
  201. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-reported-without-field/case.json +0 -0
  202. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-reported-without-field/provenance.json +0 -0
  203. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-unknown-literal/case.json +0 -0
  204. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-unknown-literal/provenance.json +0 -0
  205. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-unrelated-status-field/case.json +0 -0
  206. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/provenance/version-status-unrelated-status-field/provenance.json +0 -0
  207. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-supersedes-verified/case.json +0 -0
  208. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-supersedes-verified/pub.b64 +0 -0
  209. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-supersedes-verified/receipt.json +0 -0
  210. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-supersedes-verified/related_b.json +0 -0
  211. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-unresolved/case.json +0 -0
  212. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-unresolved/pub.b64 +0 -0
  213. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/declared-unresolved/receipt.json +0 -0
  214. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-accept-path/case.json +0 -0
  215. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-accept-path/policy.json +0 -0
  216. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-accept-path/pub.b64 +0 -0
  217. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-accept-path/receipt.json +0 -0
  218. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-accept-path/related_rx.json +0 -0
  219. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-correct-pass/case.json +0 -0
  220. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-correct-pass/policy.json +0 -0
  221. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-correct-pass/pub.b64 +0 -0
  222. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-correct-pass/receipt.json +0 -0
  223. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-correct-pass/related_r0.json +0 -0
  224. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-correct-pass/related_rx.json +0 -0
  225. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-no-pin-old-behavior/case.json +0 -0
  226. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-no-pin-old-behavior/policy.json +0 -0
  227. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-no-pin-old-behavior/pub.b64 +0 -0
  228. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-no-pin-old-behavior/receipt.json +0 -0
  229. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-no-pin-old-behavior/related_r0.json +0 -0
  230. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-no-pin-old-behavior/related_rx.json +0 -0
  231. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-target-mismatch/case.json +0 -0
  232. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-target-mismatch/policy.json +0 -0
  233. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-target-mismatch/pub.b64 +0 -0
  234. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-target-mismatch/receipt.json +0 -0
  235. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-target-mismatch/related_r0.json +0 -0
  236. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/decoy-parent-target-mismatch/related_rx.json +0 -0
  237. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/case.json +0 -0
  238. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/pub.b64 +0 -0
  239. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/receipt.json +0 -0
  240. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_001.json +0 -0
  241. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_002.json +0 -0
  242. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_003.json +0 -0
  243. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_004.json +0 -0
  244. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_005.json +0 -0
  245. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_006.json +0 -0
  246. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_007.json +0 -0
  247. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_008.json +0 -0
  248. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_009.json +0 -0
  249. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_010.json +0 -0
  250. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_011.json +0 -0
  251. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_012.json +0 -0
  252. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_013.json +0 -0
  253. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_014.json +0 -0
  254. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_015.json +0 -0
  255. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_016.json +0 -0
  256. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_017.json +0 -0
  257. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_018.json +0 -0
  258. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_019.json +0 -0
  259. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_020.json +0 -0
  260. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_021.json +0 -0
  261. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_022.json +0 -0
  262. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_023.json +0 -0
  263. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_024.json +0 -0
  264. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_025.json +0 -0
  265. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_026.json +0 -0
  266. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_027.json +0 -0
  267. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_028.json +0 -0
  268. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_029.json +0 -0
  269. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_030.json +0 -0
  270. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_031.json +0 -0
  271. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_032.json +0 -0
  272. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/depth-exceeded/related_033.json +0 -0
  273. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/digest-mismatch/case.json +0 -0
  274. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/digest-mismatch/policy.json +0 -0
  275. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/digest-mismatch/pub.b64 +0 -0
  276. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/digest-mismatch/receipt.json +0 -0
  277. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/digest-mismatch/related_b.json +0 -0
  278. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/generate_vectors.py +0 -0
  279. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/malformed-digest/case.json +0 -0
  280. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/malformed-digest/pub.b64 +0 -0
  281. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/malformed-digest/receipt.json +0 -0
  282. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-declared-supersedes-verified/case.json +0 -0
  283. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-declared-supersedes-verified/pub.b64 +0 -0
  284. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-declared-supersedes-verified/receipt.json +0 -0
  285. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-declared-supersedes-verified/related_b.json +0 -0
  286. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-decoy-parent-target-mismatch/case.json +0 -0
  287. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-decoy-parent-target-mismatch/policy.json +0 -0
  288. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-decoy-parent-target-mismatch/pub.b64 +0 -0
  289. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-decoy-parent-target-mismatch/receipt.json +0 -0
  290. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-decoy-parent-target-mismatch/related_r0.json +0 -0
  291. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-decoy-parent-target-mismatch/related_rx.json +0 -0
  292. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-digest-mismatch/case.json +0 -0
  293. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-digest-mismatch/policy.json +0 -0
  294. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-digest-mismatch/pub.b64 +0 -0
  295. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-digest-mismatch/receipt.json +0 -0
  296. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-digest-mismatch/related_b.json +0 -0
  297. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-relation-signer-unauthorized/case.json +0 -0
  298. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-relation-signer-unauthorized/policy.json +0 -0
  299. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-relation-signer-unauthorized/pub.b64 +0 -0
  300. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-relation-signer-unauthorized/receipt.json +0 -0
  301. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-relation-signer-unauthorized/related_b.json +0 -0
  302. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-renews/case.json +0 -0
  303. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-renews/pub.b64 +0 -0
  304. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-renews/receipt.json +0 -0
  305. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-renews/related_b.json +0 -0
  306. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-silent-landing/case.json +0 -0
  307. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-silent-landing/pub.b64 +0 -0
  308. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-silent-landing/receipt.json +0 -0
  309. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-valid-baseline/case.json +0 -0
  310. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-valid-baseline/pub.b64 +0 -0
  311. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/outcome-valid-baseline/receipt.json +0 -0
  312. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-amends/case.json +0 -0
  313. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-amends/pub.b64 +0 -0
  314. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-amends/receipt.json +0 -0
  315. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-amends/related_b.json +0 -0
  316. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-corrects/case.json +0 -0
  317. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-corrects/pub.b64 +0 -0
  318. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-corrects/receipt.json +0 -0
  319. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-corrects/related_b.json +0 -0
  320. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-derivedfrom/case.json +0 -0
  321. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-derivedfrom/pub.b64 +0 -0
  322. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-derivedfrom/receipt.json +0 -0
  323. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-derivedfrom/related_b.json +0 -0
  324. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-retracts/case.json +0 -0
  325. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-retracts/pub.b64 +0 -0
  326. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-retracts/receipt.json +0 -0
  327. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-retracts/related_b.json +0 -0
  328. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-revises/case.json +0 -0
  329. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-revises/pub.b64 +0 -0
  330. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-revises/receipt.json +0 -0
  331. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-revises/related_b.json +0 -0
  332. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-unauthorized/case.json +0 -0
  333. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-unauthorized/policy.json +0 -0
  334. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-unauthorized/pub.b64 +0 -0
  335. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-unauthorized/receipt.json +0 -0
  336. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-unauthorized/related_b.json +0 -0
  337. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-verified/case.json +0 -0
  338. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-verified/policy.json +0 -0
  339. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-verified/pub.b64 +0 -0
  340. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-verified/receipt.json +0 -0
  341. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-cross-issuer-verified/related_b.json +0 -0
  342. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-same-key-explicit/case.json +0 -0
  343. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-same-key-explicit/policy.json +0 -0
  344. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-same-key-explicit/pub.b64 +0 -0
  345. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-same-key-explicit/receipt.json +0 -0
  346. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-same-key-explicit/related_b.json +0 -0
  347. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-verified-under-not-claim/case.json +0 -0
  348. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-verified-under-not-claim/policy.json +0 -0
  349. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-verified-under-not-claim/pub.b64 +0 -0
  350. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-verified-under-not-claim/receipt.json +0 -0
  351. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/relation-signer-verified-under-not-claim/related_b.json +0 -0
  352. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/renews-vector/case.json +0 -0
  353. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/renews-vector/pub.b64 +0 -0
  354. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/renews-vector/receipt.json +0 -0
  355. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/renews-vector/related_b.json +0 -0
  356. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/retracts-then-use/case.json +0 -0
  357. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/retracts-then-use/policy.json +0 -0
  358. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/retracts-then-use/pub.b64 +0 -0
  359. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/retracts-then-use/receipt.json +0 -0
  360. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/retracts-then-use/related_r.json +0 -0
  361. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/silent-landing/case.json +0 -0
  362. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/silent-landing/pub.b64 +0 -0
  363. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/silent-landing/receipt.json +0 -0
  364. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-malformed/case.json +0 -0
  365. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-malformed/pub.b64 +0 -0
  366. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-malformed/receipt.json +0 -0
  367. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-declared-unresolved/case.json +0 -0
  368. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-declared-unresolved/pub.b64 +0 -0
  369. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-declared-unresolved/receipt.json +0 -0
  370. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-unauthorized/case.json +0 -0
  371. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-unauthorized/policy.json +0 -0
  372. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-unauthorized/pub.b64 +0 -0
  373. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-unauthorized/receipt.json +0 -0
  374. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-unauthorized/related_t.json +0 -0
  375. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-blocked/case.json +0 -0
  376. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-blocked/policy.json +0 -0
  377. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-blocked/pub.b64 +0 -0
  378. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-blocked/receipt.json +0 -0
  379. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-blocked/related_t.json +0 -0
  380. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-visible/case.json +0 -0
  381. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-visible/pub.b64 +0 -0
  382. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-visible/receipt.json +0 -0
  383. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-retracts-verified-visible/related_t.json +0 -0
  384. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-supersedes-verified/case.json +0 -0
  385. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-supersedes-verified/pub.b64 +0 -0
  386. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-supersedes-verified/receipt.json +0 -0
  387. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/statement-supersedes-verified/related_t.json +0 -0
  388. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/t1-canonical-invalid-signature/case.json +0 -0
  389. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/t1-canonical-invalid-signature/pub.b64 +0 -0
  390. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/t1-canonical-invalid-signature/receipt.json +0 -0
  391. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-ambiguous/case.json +0 -0
  392. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-ambiguous/pub.b64 +0 -0
  393. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-ambiguous/receipt.json +0 -0
  394. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-ambiguous/related_r0.json +0 -0
  395. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-correct-pass/case.json +0 -0
  396. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-correct-pass/pub.b64 +0 -0
  397. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-correct-pass/receipt.json +0 -0
  398. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-correct-pass/related_r0.json +0 -0
  399. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-mismatch/case.json +0 -0
  400. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-mismatch/pub.b64 +0 -0
  401. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-mismatch/receipt.json +0 -0
  402. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-mismatch/related_r0.json +0 -0
  403. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-missing/case.json +0 -0
  404. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-missing/pub.b64 +0 -0
  405. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-missing/receipt.json +0 -0
  406. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/target-subject-missing/related_r0.json +0 -0
  407. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/unauthorized-signer/case.json +0 -0
  408. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/unauthorized-signer/pub.b64 +0 -0
  409. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/unauthorized-signer/receipt.json +0 -0
  410. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/unauthorized-signer/related_b.json +0 -0
  411. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/valid-baseline/case.json +0 -0
  412. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/valid-baseline/pub.b64 +0 -0
  413. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/valid-baseline/receipt.json +0 -0
  414. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/wrong-payloadtype-target/case.json +0 -0
  415. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/wrong-payloadtype-target/pub.b64 +0 -0
  416. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/wrong-payloadtype-target/receipt.json +0 -0
  417. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/conformance/relation/wrong-payloadtype-target/related_t.json +0 -0
  418. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/adr/renewal_policy.example.json +0 -0
  419. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/AUDITOR_OPEN_POINTS.md +0 -0
  420. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/OPEN_QUESTIONS.md +0 -0
  421. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/README.md +0 -0
  422. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/REPRODUCTION_RUNBOOK.md +0 -0
  423. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/calendar_independence.md +0 -0
  424. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/differential_matrix.md +0 -0
  425. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/rust_parity_scope.md +0 -0
  426. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/tamper_resistance.md +0 -0
  427. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/docs/readiness_pack/threat_model_delta_360.md +0 -0
  428. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/README.md +0 -0
  429. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/anchors/chia-datalayer-invalid-root.json +0 -0
  430. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/anchors/chia-datalayer-valid.json +0 -0
  431. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/checkpoint_example.py +0 -0
  432. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/decision_receipt_allow.json +0 -0
  433. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/decision_receipt_deny.json +0 -0
  434. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/decision_receipt_escalate.json +0 -0
  435. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/decision_receipt_with_eval_ref.intoto.json +0 -0
  436. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/eee_receipt.py +0 -0
  437. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/example.tlog-proof +0 -0
  438. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/example_bundle.json +0 -0
  439. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/experimental_enclave.py +0 -0
  440. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/inspect_hook_example.py +0 -0
  441. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/inspect_receipt.py +0 -0
  442. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/intoto/private-model-commitment.statement.json +0 -0
  443. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/intoto/public-model.statement.json +0 -0
  444. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/intoto/release-gate.statement.json +0 -0
  445. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/intoto/svr.statement.json +0 -0
  446. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/intoto_dsse_export.py +0 -0
  447. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/lm_eval_receipt.py +0 -0
  448. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/make_example.py +0 -0
  449. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/persample_audit.py +0 -0
  450. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/pytest_plugin_example.py +0 -0
  451. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/rekor_interop.py +0 -0
  452. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/tlog_proof_example.py +0 -0
  453. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/trust_policy_decision_strict.json +0 -0
  454. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/examples/trust_policy_strict.json +0 -0
  455. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/formal/README.md +0 -0
  456. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/formal/model.py +0 -0
  457. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/action-outcome-v0.1.schema.json +0 -0
  458. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/eval_claim_v0_1.schema.json +0 -0
  459. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/in_toto_statement_v1.schema.json +0 -0
  460. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/proofbundle_v0_1.schema.json +0 -0
  461. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/run-ledger-v0.1.schema.json +0 -0
  462. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/trust-pack-v0.1.schema.json +0 -0
  463. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/trust_policy_v0_1.schema.json +0 -0
  464. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/schemas/verification-summary-v0.1.schema.json +0 -0
  465. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/_build_anchor_fixture.py +0 -0
  466. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/branch_base_check.py +0 -0
  467. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/build_reproducible.py +0 -0
  468. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/claims_hygiene_check.py +0 -0
  469. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/demo.sh +0 -0
  470. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/demo_tamper.sh +0 -0
  471. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/doc_link_check.py +0 -0
  472. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/finding_base_drift.py +0 -0
  473. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/findings_register.py +0 -0
  474. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/fork_pr_secret_isolation.py +0 -0
  475. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/fuzz_soak.py +0 -0
  476. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/gate_qualification_harness.py +0 -0
  477. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/gen_findings_register.py +0 -0
  478. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/gen_synthetic_ots_fixture.py +0 -0
  479. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/git-hooks/pre-commit +0 -0
  480. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/install_git_hooks.sh +0 -0
  481. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/mutant_signature_guard.py +0 -0
  482. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/pre_tag_attestation.py +0 -0
  483. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/pre_tag_audit_gate.py +0 -0
  484. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/pre_tag_receipt.py +0 -0
  485. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/pre_tag_receipt_lib.py +0 -0
  486. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/readiness_pack_gate.py +0 -0
  487. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/readiness_pack_manifest.py +0 -0
  488. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/render_demo.py +0 -0
  489. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/rust_parity_gate.py +0 -0
  490. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/scripts/test_manifest_gate.py +0 -0
  491. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/setup.cfg +0 -0
  492. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/_inspect_registry.py +0 -0
  493. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/_integration.py +0 -0
  494. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/_membership.py +0 -0
  495. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/_strict_json.py +0 -0
  496. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/_wire_b64.py +0 -0
  497. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/__init__.py +0 -0
  498. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/_provenance.py +0 -0
  499. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/eee.py +0 -0
  500. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/inspect_ai.py +0 -0
  501. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/lm_eval.py +0 -0
  502. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/promptfoo.py +0 -0
  503. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/adapters/samples.py +0 -0
  504. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors.py +0 -0
  505. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors_chia.py +0 -0
  506. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors_chia_add.py +0 -0
  507. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors_markovian.py +0 -0
  508. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors_ots.py +0 -0
  509. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors_rfc3161.py +0 -0
  510. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/anchors_rootcommit.py +0 -0
  511. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/assurance.py +0 -0
  512. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/beacon.py +0 -0
  513. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/budget.py +0 -0
  514. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/bundle.py +0 -0
  515. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/canonical.py +0 -0
  516. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/checkpoint.py +0 -0
  517. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/cli.py +0 -0
  518. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/demo.py +0 -0
  519. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/dsse.py +0 -0
  520. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/eee_eval_schema.json +0 -0
  521. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/emit.py +0 -0
  522. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/errors.py +0 -0
  523. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/evalcard.py +0 -0
  524. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/evidence_pack.py +0 -0
  525. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/experimental/__init__.py +0 -0
  526. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/experimental/enclave.py +0 -0
  527. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/hashalg.py +0 -0
  528. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/hf_evals.py +0 -0
  529. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/inspect_hook.py +0 -0
  530. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/intoto.py +0 -0
  531. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/kbjwt.py +0 -0
  532. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/merkle.py +0 -0
  533. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/outcome.py +0 -0
  534. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/persample.py +0 -0
  535. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policies/decision-receipt-template-v1.json +0 -0
  536. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policies/research-preview-v1.json +0 -0
  537. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policies/strict-eval-authenticated-root-template-v1.json +0 -0
  538. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policies/strict-eval-template-v1.json +0 -0
  539. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policies/strict-prereg-template-v1.json +0 -0
  540. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policy.py +0 -0
  541. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/policy_profiles.py +0 -0
  542. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/pqsig.py +0 -0
  543. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/prereg.py +0 -0
  544. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/public_transparency.py +0 -0
  545. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/py.typed +0 -0
  546. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/pytest_plugin.py +0 -0
  547. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/relation.py +0 -0
  548. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/relation_statement.py +0 -0
  549. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/renewal.py +0 -0
  550. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/run_ledger.py +0 -0
  551. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/sdjwt.py +0 -0
  552. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/sdjwt_issue.py +0 -0
  553. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/sdjwt_vc.py +0 -0
  554. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/signature.py +0 -0
  555. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/statuslist.py +0 -0
  556. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/subject_binding.py +0 -0
  557. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/tlogproof.py +0 -0
  558. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/trust_pack.py +0 -0
  559. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle/verification_summary.py +0 -0
  560. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle.egg-info/dependency_links.txt +0 -0
  561. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle.egg-info/entry_points.txt +0 -0
  562. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/src/proofbundle.egg-info/top_level.txt +0 -0
  563. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/_beinahe_treffer.py +0 -0
  564. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/chia_datalayer_proof.json +0 -0
  565. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/freetsa_receipt_anchor.json +0 -0
  566. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/checkpoint_7397/MANIFEST.json +0 -0
  567. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/checkpoint_7397/checkpoint_7397.txt +0 -0
  568. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/ERGEBNIS.json +0 -0
  569. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/ERGEBNIS_negativ.json +0 -0
  570. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/MANIFEST.json +0 -0
  571. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/README.md +0 -0
  572. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/SOURCES.md +0 -0
  573. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/keys_unabhaengig.txt +0 -0
  574. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/leaf_7271.raw +0 -0
  575. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/markovian_log/proof_7271/proof_7271.tlog-proof +0 -0
  576. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/MANIFEST.json +0 -0
  577. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/README.md +0 -0
  578. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/MANIFEST.json +0 -0
  579. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/README.md +0 -0
  580. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/manifest.json +0 -0
  581. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-01-valid.txt +0 -0
  582. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-02-tampered-root.txt +0 -0
  583. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-03-tampered-wallet.txt +0 -0
  584. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors/rootcommit-04-tampered-proof.txt +0 -0
  585. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/manifest.json +0 -0
  586. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-01-valid.txt +0 -0
  587. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-02-tampered-root.txt +0 -0
  588. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-03-tampered-wallet.txt +0 -0
  589. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-04-tampered-sig.txt +0 -0
  590. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/rootcommit/vectors_sig/v2sig-05-tampered-proof.txt +0 -0
  591. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/01-valid.txt +0 -0
  592. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/02-unknown-id.txt +0 -0
  593. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/03-tampered-body.txt +0 -0
  594. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/04-tampered-proof.txt +0 -0
  595. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/anchors/tlog_bitcoin_anchor/vectors/manifest.json +0 -0
  596. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/checkpoint/PROVENANCE.json +0 -0
  597. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/checkpoint/gosumdb_known_keys.go +0 -0
  598. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/checkpoint/rekor_v2_checkpoint.txt +0 -0
  599. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/checkpoint/sumdb_latest.txt +0 -0
  600. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/checkpoint/trusted_root.json +0 -0
  601. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ed25519_speccheck_cases.LICENSE +0 -0
  602. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ed25519_speccheck_cases.README.md +0 -0
  603. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ed25519_speccheck_cases.json +0 -0
  604. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/eee_arc_easy.json +0 -0
  605. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/inspect_logs/safety_refusal_demo.eval +0 -0
  606. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/inspect_logs/safety_refusal_demo.eval.provenance.json +0 -0
  607. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/lm_eval_arc_easy_real.json +0 -0
  608. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/markovian_anchor_confirmed.json +0 -0
  609. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/mldsa_acvp/PROVENANCE.json +0 -0
  610. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/mldsa_acvp/mldsa_sigver_slice.json +0 -0
  611. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/PROVENANCE.json +0 -0
  612. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/block358391.json +0 -0
  613. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/hello-world.txt +0 -0
  614. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/hello-world.txt.ots +0 -0
  615. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/incomplete.txt +0 -0
  616. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/incomplete.txt.ots +0 -0
  617. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/known-and-unknown-notary.txt +0 -0
  618. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/known-and-unknown-notary.txt.ots +0 -0
  619. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/merkle2.txt +0 -0
  620. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/merkle2.txt.ots +0 -0
  621. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/synthetic-upgraded-sha256.block.json +0 -0
  622. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/synthetic-upgraded-sha256.txt +0 -0
  623. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/synthetic-upgraded-sha256.txt.ots +0 -0
  624. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/two-calendars.txt +0 -0
  625. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/ots/two-calendars.txt.ots +0 -0
  626. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/promptfoo_results_v3.json +0 -0
  627. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/rekor_inclusion_25579.json +0 -0
  628. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/rfc6962_vectors.json +0 -0
  629. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/sdjwt_disclosure_vector.json +0 -0
  630. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/sdjwt_reference_eddsa.json +0 -0
  631. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/sdjwtvc/PROVENANCE.json +0 -0
  632. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/sdjwtvc/sdjwtvc_examples.txt +0 -0
  633. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/fixtures/sdjwtvc/sdjwtvc_issuer_pubkey.json +0 -0
  634. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_adapters.py +0 -0
  635. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_adversarial.py +0 -0
  636. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchor_extra_arg_type_confusion.py +0 -0
  637. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchor_hardening_321.py +0 -0
  638. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchor_longevity_property.py +0 -0
  639. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchor_target_trustedtime.py +0 -0
  640. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_chia.py +0 -0
  641. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_chia_add.py +0 -0
  642. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_chia_claims.py +0 -0
  643. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_generic.py +0 -0
  644. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_markovian.py +0 -0
  645. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_markovian_log.py +0 -0
  646. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_ots.py +0 -0
  647. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_ots_frozen_rptrust_guard.py +0 -0
  648. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_rfc3161.py +0 -0
  649. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_rfc3161_type_floor.py +0 -0
  650. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_anchors_rootcommit.py +0 -0
  651. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_assurance.py +0 -0
  652. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_audit_candidate_360.py +0 -0
  653. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_audit_candidate_ready_logic.py +0 -0
  654. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_audit_index_zahlen_stimmen.py +0 -0
  655. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_audit_marker_line_wrap.py +0 -0
  656. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_automation_verdict.py +0 -0
  657. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_beacon.py +0 -0
  658. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_branch_base_check.py +0 -0
  659. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_budget.py +0 -0
  660. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_bughunt_361_automation_failopen.py +0 -0
  661. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_bughunt_361_never_raise.py +0 -0
  662. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_bundle.py +0 -0
  663. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_bundle_robustness.py +0 -0
  664. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_canonical.py +0 -0
  665. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_checkpoint.py +0 -0
  666. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_checkpoint_external_vectors.py +0 -0
  667. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_checkpoint_quorum_property.py +0 -0
  668. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_claims_hygiene.py +0 -0
  669. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_cli.py +0 -0
  670. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_cli_eval.py +0 -0
  671. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_cli_require_anchor.py +0 -0
  672. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_conformance.py +0 -0
  673. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_conformance_retention_361.py +0 -0
  674. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_content_root_property.py +0 -0
  675. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_cosignature.py +0 -0
  676. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_cosignature_mldsa.py +0 -0
  677. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_cross_format_singleton_361.py +0 -0
  678. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_anchors.py +0 -0
  679. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_cli.py +0 -0
  680. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_evidence.py +0 -0
  681. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_fuzz.py +0 -0
  682. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_hardening.py +0 -0
  683. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_policy.py +0 -0
  684. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_schema.py +0 -0
  685. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_validator_api.py +0 -0
  686. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_decision_verify.py +0 -0
  687. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_demo.py +0 -0
  688. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_docs_truth.py +0 -0
  689. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_dsse_adversarial.py +0 -0
  690. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_dup_key_reject.py +0 -0
  691. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_ed25519_semantics.py +0 -0
  692. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_eee.py +0 -0
  693. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_emit.py +0 -0
  694. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_emitter_parser_rundlauf.py +0 -0
  695. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_enclave_assurance.py +0 -0
  696. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_erwartungsvergleich_population_guard.py +0 -0
  697. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_eval_claim_schema.py +0 -0
  698. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_eval_evidence_class.py +0 -0
  699. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_evalcard.py +0 -0
  700. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_evalclaim.py +0 -0
  701. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_evidence_pack.py +0 -0
  702. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_examples.py +0 -0
  703. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_experimental_enclave.py +0 -0
  704. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_findings_register_identity_axis.py +0 -0
  705. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_findings_register_rt10.py +0 -0
  706. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_fork_pr_secret_isolation.py +0 -0
  707. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_fuzz_parsers.py +0 -0
  708. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_fuzz_soak_regression.py +0 -0
  709. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_gate_population_and_nested_leaf.py +0 -0
  710. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_gate_qualification_harness.py +0 -0
  711. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_hashalg.py +0 -0
  712. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_hf_entry_verify_eee_digest.py +0 -0
  713. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_hf_evals.py +0 -0
  714. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_inspect_hook.py +0 -0
  715. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_int_magnitude_budget_family.py +0 -0
  716. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto.py +0 -0
  717. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_claims_hygiene.py +0 -0
  718. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_content_root_migration.py +0 -0
  719. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_dsse.py +0 -0
  720. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_eval_result.py +0 -0
  721. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_examples.py +0 -0
  722. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_spec_diff.py +0 -0
  723. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_intoto_svr.py +0 -0
  724. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_iter9_deepgate_round4.py +0 -0
  725. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_iter9_product_fixes.py +0 -0
  726. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_jcs_mandatory_361.py +0 -0
  727. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_kappe_vor_arbeit.py +0 -0
  728. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_kbjwt.py +0 -0
  729. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_legacy_assurance_deprecation_361.py +0 -0
  730. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_lens_review_fixes_3_1_3.py +0 -0
  731. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_load_signer_fd_hazard.py +0 -0
  732. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_manifest_lock.json +0 -0
  733. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_membership_hashable_guard.py +0 -0
  734. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_merkle.py +0 -0
  735. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_merkle_consistency_property.py +0 -0
  736. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_merkle_property.py +0 -0
  737. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_mldsa_acvp_vectors.py +0 -0
  738. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_mutant_signature_guard.py +0 -0
  739. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_mutation_isolation.py +0 -0
  740. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_never_raise_361.py +0 -0
  741. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_never_raise_population_guard.py +0 -0
  742. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_never_raise_primary_arg_property.py +0 -0
  743. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_never_raise_recursion_361.py +0 -0
  744. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_official_vectors.py +0 -0
  745. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_ok_semantics.py +0 -0
  746. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_origin_quorum_rule.py +0 -0
  747. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_ots_calendar_hardening.py +0 -0
  748. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_ots_external_vectors.py +0 -0
  749. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_outcome_receiver_corroboration.py +0 -0
  750. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_outcome_verify.py +0 -0
  751. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_oversized_int_guard.py +0 -0
  752. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_path_argument_type_floor.py +0 -0
  753. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_persample.py +0 -0
  754. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pinned_key_validation.py +0 -0
  755. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_policy_explain_lint.py +0 -0
  756. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_policy_lifecycle_purpose.py +0 -0
  757. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_policy_profiles.py +0 -0
  758. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_policy_templates.py +0 -0
  759. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pqsig.py +0 -0
  760. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pre_tag_attestation.py +0 -0
  761. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pre_tag_gate_eigenschaften.py +0 -0
  762. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pre_tag_receipt_commit_flow.py +0 -0
  763. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pre_tag_receipt_gate.py +0 -0
  764. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_predicate_type_enforcement.py +0 -0
  765. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_prereg.py +0 -0
  766. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_promptfoo.py +0 -0
  767. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_provenance.py +0 -0
  768. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_public_transparency.py +0 -0
  769. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_pytest_plugin.py +0 -0
  770. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_rekor_interop.py +0 -0
  771. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_gate_distance_invariance.py +0 -0
  772. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_profile.py +0 -0
  773. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_property.py +0 -0
  774. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_same_key_361.py +0 -0
  775. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_signer_target_340.py +0 -0
  776. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_statement.py +0 -0
  777. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_statement_rust_parity.py +0 -0
  778. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_relation_subject_pin_361.py +0 -0
  779. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_release_integrity_gate.py +0 -0
  780. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_render_safe_untrusted_int.py +0 -0
  781. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_renewal.py +0 -0
  782. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_renewal_external_token_glue.py +0 -0
  783. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_renewal_field_magnitude_never_raise.py +0 -0
  784. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_renewal_policy.py +0 -0
  785. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_renewal_signed.py +0 -0
  786. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_reported_version_status.py +0 -0
  787. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_reproducible_build_361.py +0 -0
  788. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_rfc6962_external_vectors.py +0 -0
  789. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_root_authenticity.py +0 -0
  790. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_run_ledger.py +0 -0
  791. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_rust_parity_gate.py +0 -0
  792. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_schema.py +0 -0
  793. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_schema_parity.py +0 -0
  794. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdist_packaging_361.py +0 -0
  795. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdist_selftest_optional_deps.py +0 -0
  796. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_adversarial.py +0 -0
  797. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_duplicate_cnf.py +0 -0
  798. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_issue.py +0 -0
  799. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_reference.py +0 -0
  800. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_resource_budget.py +0 -0
  801. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_vc.py +0 -0
  802. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwt_verify_binding.py +0 -0
  803. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sdjwtvc_external_vectors.py +0 -0
  804. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_sibling_never_raise_361.py +0 -0
  805. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_signature.py +0 -0
  806. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_statuslist.py +0 -0
  807. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_structural_budget_reachability.py +0 -0
  808. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_subject_binding.py +0 -0
  809. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_tlogproof.py +0 -0
  810. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_tree_context_authenticity.py +0 -0
  811. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_trust_pack.py +0 -0
  812. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_trust_pack_crypto_agility.py +0 -0
  813. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_trust_pack_outcome_receivers_role.py +0 -0
  814. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_trust_pack_payloadtype_negatives.py +0 -0
  815. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_trust_policy.py +0 -0
  816. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_type_confusion_wireform.py +0 -0
  817. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_verification_summary.py +0 -0
  818. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_verify_matrix.py +0 -0
  819. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_verify_proof_expected_origin.py +0 -0
  820. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_wire_bytes_strict.py +0 -0
  821. {proofbundle-5.0.0 → proofbundle-5.1.0.post1}/tests/test_wurzelsammlung_schliesst_bauartefakte_aus.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
@@ -0,0 +1,287 @@
1
+ Metadata-Version: 2.4
2
+ Name: proofbundle
3
+ Version: 5.1.0.post1
4
+ Summary: Emit and verify portable cryptographic evidence bundles, offline: Ed25519 + RFC 6962 Merkle + optional SD-JWT.
5
+ Author: Konrad Gruszka
6
+ License: MIT
7
+ Project-URL: Homepage, https://b7n0de.com
8
+ Project-URL: Repository, https://github.com/b7n0de/proofbundle
9
+ Project-URL: Issues, https://github.com/b7n0de/proofbundle/issues
10
+ Project-URL: Changelog, https://github.com/b7n0de/proofbundle/blob/main/CHANGELOG.md
11
+ Project-URL: Documentation, https://github.com/b7n0de/proofbundle#readme
12
+ Keywords: cryptography,merkle,transparency-log,ed25519,sd-jwt,verifiable-credentials,attestation,provenance,rfc6962
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Topic :: Security :: Cryptography
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: cryptography>=42
27
+ Requires-Dist: rfc8785>=0.1.4
28
+ Provides-Extra: sdjwt
29
+ Provides-Extra: eval
30
+ Requires-Dist: rfc8785>=0.1.4; extra == "eval"
31
+ Provides-Extra: anchors
32
+ Requires-Dist: rfc3161-client>=1.0.6; extra == "anchors"
33
+ Requires-Dist: opentimestamps<0.5,>=0.4.5; extra == "anchors"
34
+ Requires-Dist: rfc8785>=0.1.4; extra == "anchors"
35
+ Provides-Extra: adapters
36
+ Provides-Extra: chia
37
+ Provides-Extra: experimental
38
+ Provides-Extra: pq
39
+ Requires-Dist: cryptography>=48; extra == "pq"
40
+ Provides-Extra: rootcommit
41
+ Requires-Dist: ecdsa>=0.18; extra == "rootcommit"
42
+ Provides-Extra: formal
43
+ Requires-Dist: z3-solver>=4.12; extra == "formal"
44
+ Provides-Extra: pytest
45
+ Requires-Dist: pytest>=7; extra == "pytest"
46
+ Provides-Extra: test
47
+ Requires-Dist: pytest>=7; extra == "test"
48
+ Requires-Dist: hypothesis>=6; extra == "test"
49
+ Requires-Dist: PyYAML>=6; extra == "test"
50
+ Requires-Dist: jsonschema>=4; extra == "test"
51
+ Requires-Dist: sd-jwt>=0.10; extra == "test"
52
+ Requires-Dist: rfc8785>=0.1.4; extra == "test"
53
+ Provides-Extra: inspect
54
+ Requires-Dist: inspect_ai<=0.3.261,>=0.3.112; extra == "inspect"
55
+ Provides-Extra: dev
56
+ Requires-Dist: pytest>=7; extra == "dev"
57
+ Requires-Dist: ruff<0.17,>=0.5; extra == "dev"
58
+ Requires-Dist: jsonschema>=4; extra == "dev"
59
+ Requires-Dist: mypy<3,>=1.8; extra == "dev"
60
+ Requires-Dist: build>=1; extra == "dev"
61
+ Requires-Dist: hypothesis>=6; extra == "dev"
62
+ Requires-Dist: rfc8785>=0.1.4; extra == "dev"
63
+ Requires-Dist: sd-jwt>=0.10; extra == "dev"
64
+ Requires-Dist: PyYAML>=6; extra == "dev"
65
+ Requires-Dist: inspect_ai<=0.3.261,>=0.3.112; extra == "dev"
66
+ Dynamic: license-file
67
+
68
+ <div align="center">
69
+
70
+ <picture>
71
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/b7n0de/proofbundle/main/assets/b7n0de-hase-logo-dark.png">
72
+ <img alt="b7n0de, Verified AI Work, pink rabbit mascot over the B7N0DE wordmark" src="https://raw.githubusercontent.com/b7n0de/proofbundle/main/assets/b7n0de-hase-logo.png" width="200">
73
+ </picture>
74
+
75
+ <h1>proofbundle</h1>
76
+
77
+ [![CI](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml)
78
+ [![demo reproducible](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml)
79
+ [![PyPI](https://img.shields.io/pypi/v/proofbundle.svg)](https://pypi.org/project/proofbundle/)
80
+ [![Python](https://img.shields.io/pypi/pyversions/proofbundle.svg)](https://pypi.org/project/proofbundle/)
81
+ [![License: MIT](https://img.shields.io/badge/license-MIT-D6248A.svg)](https://github.com/b7n0de/proofbundle/blob/main/LICENSE)
82
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.21110642.svg)](https://doi.org/10.5281/zenodo.21110642)
83
+
84
+ **AI eval results need receipts.**
85
+
86
+ Turn an AI evaluation result, review, decision, or action outcome into a portable receipt that can be checked offline.
87
+
88
+ proofbundle lets a verifier check **which key signed the exact bytes** and **whether those bytes changed**. It does not prove that the result is true, that the signer is trustworthy, or that the evaluation was sound.
89
+
90
+ **One file. No verification server. No network required.**
91
+
92
+ [Quick start](#quick-start) · [What it proves](#what-a-receipt-proves) · [New in 5.1.0](#new-in-510) · [Adoption review](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md) · [Documentation](#documentation)
93
+
94
+ </div>
95
+
96
+ ## New in 5.1.0
97
+
98
+ [proofbundle 5.1.0](https://github.com/b7n0de/proofbundle/releases/tag/v5.1.0) adds a new receipt kind for disclosing AI agent involvement and review in pull requests and issues.
99
+
100
+ - **Agent review receipts** bind the reviewed GitHub object, the declared review runs, coverage, findings, limitations, and the human visible disclosure.
101
+ - **Stronger subject and disclosure binding** prevents a valid receipt from silently travelling to another object or a visible block from claiming more than the signed predicate.
102
+ - **Clearer time and coverage semantics** separate declared event time from witness observation time and reject ambiguous claims of complete coverage.
103
+ - **Hardened correction chains** prevent an untrusted receipt from taking over the current position in a correction or supersession chain.
104
+ - **Executable conformance coverage** now includes the agent review predicate and the receipt envelope profile.
105
+
106
+ One behaviour change deserves attention before upgrading. `automation_summary` now adds `RECEIPT_NOT_OK` to its blockers when a receipt is not `ok`. Read the [5.1.0 changelog](https://github.com/b7n0de/proofbundle/blob/main/CHANGELOG.md#510---2026-08-31-the-profile-a-stranger-can-read--minor) before updating automation.
107
+
108
+ > **Release status**
109
+ >
110
+ > The closing audit verdict for 5.1.0 was `PARTIAL_GATE_NO_WITHSTANDS`, not `WITHSTANDS_DEEPGATE`. The declared residual risks are published in [RESTRISIKO_510.md](https://github.com/b7n0de/proofbundle/blob/main/RESTRISIKO_510.md).
111
+
112
+ ## Quick start
113
+
114
+ Install the core verifier.
115
+
116
+ ```bash
117
+ python -m pip install proofbundle
118
+ ```
119
+
120
+ Requires Python 3.10 or newer. The core installs two dependencies, `cryptography` and `rfc8785`.
121
+
122
+ Download a real example receipt and verify it offline.
123
+
124
+ ```bash
125
+ curl -fsSL \
126
+ https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json \
127
+ -o receipt.json
128
+
129
+ proofbundle verify receipt.json
130
+ ```
131
+
132
+ The command uses the local file only. Its exit code is part of the public contract.
133
+
134
+ ```text
135
+ 0 verified
136
+ 1 verification failed
137
+ 2 malformed input or usage error
138
+ 3 relying party policy not met
139
+ ```
140
+
141
+ Run the tamper demo.
142
+
143
+ ```bash
144
+ python -m pip install "proofbundle[eval]"
145
+ proofbundle demo
146
+ ```
147
+
148
+ The demo checks an honest receipt, multiple tampered variants, and a sample swap. It exits nonzero if a tamper is accepted.
149
+
150
+ For a guided walkthrough, see [docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md). For Inspect, see [docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md).
151
+
152
+ ## What a receipt proves
153
+
154
+ | A verified receipt can establish | A verified receipt does not establish |
155
+ |---|---|
156
+ | A stated key signed these exact bytes | The real world identity or honesty of the key holder |
157
+ | The signed content has not changed | The truth of the reported score or finding |
158
+ | A supplied Merkle inclusion or sample opening is valid | That the evaluation design was good |
159
+ | A declared threshold, provenance field, or relation is present and bound | That the computation itself was correct |
160
+ | A supplied relying party policy was met | That no omitted run or cherry picked result exists unless the chosen profile makes that claim testable |
161
+
162
+ This boundary is the product. proofbundle makes a claim attributable and tamper evident without turning the claim into truth.
163
+
164
+ Read the full [threat model](https://github.com/b7n0de/proofbundle/blob/main/THREAT_MODEL.md) and the project wide [non claims](https://github.com/b7n0de/proofbundle/blob/main/docs/NON_CLAIMS.md).
165
+
166
+ ## Choose the path that matches your task
167
+
168
+ | Task | Install | Start here |
169
+ |---|---|---|
170
+ | Verify an existing receipt offline | `proofbundle` | [Quick start](#quick-start), [SPEC.md](https://github.com/b7n0de/proofbundle/blob/main/SPEC.md) |
171
+ | Emit an evaluation receipt or preregistration | `proofbundle[eval]` | [docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md), [EVAL_CLAIM.md](https://github.com/b7n0de/proofbundle/blob/main/EVAL_CLAIM.md) |
172
+ | Integrate with Inspect AI | `proofbundle[inspect]` | [docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md) |
173
+ | Add a signed agent review disclosure to a PR or issue | `proofbundle` | [5.1.0 release notes](https://github.com/b7n0de/proofbundle/releases/tag/v5.1.0), [conformance/agent_review](https://github.com/b7n0de/proofbundle/tree/main/conformance/agent_review/) |
174
+ | Verify RFC 3161 or OpenTimestamps evidence | `proofbundle[anchors]` | [docs/ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/ANCHORS.md) |
175
+ | Verify ML-DSA-44 witness cosignatures | `proofbundle[pq]` | [docs/ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/ANCHORS.md) |
176
+ | Explore the TEE attestation bridge | `proofbundle[experimental]` | [docs/EXPERIMENTAL_ENCLAVE.md](https://github.com/b7n0de/proofbundle/blob/main/docs/EXPERIMENTAL_ENCLAVE.md) |
177
+
178
+ ## How it works
179
+
180
+ ```text
181
+ evaluation, review, decision, or action
182
+ │
183
+ ▼
184
+ canonical statement and commitments
185
+ │
186
+ ▼
187
+ signature and optional Merkle proofs
188
+ │
189
+ ▼
190
+ one portable receipt file
191
+ │
192
+ ▼
193
+ proofbundle verification offline
194
+ │
195
+ ▼
196
+ separate verification axes and policy result
197
+ ```
198
+
199
+ The verifier checks only the evidence supplied to it. Trust anchors, expected subjects, currentness information, and policy requirements come from the relying party.
200
+
201
+ ## Capabilities and maturity
202
+
203
+ proofbundle is a **beta project**. Shipped does not mean that every profile has the same maturity.
204
+
205
+ | Capability | What it provides | Maturity |
206
+ |---|---|---|
207
+ | Core receipt verification | Ed25519 signatures, RFC 6962 and RFC 9162 Merkle inclusion, strict parsing, offline verification | Shipped |
208
+ | Evaluation receipts | Metric and threshold claims, provenance, salted commitments, optional per sample audit | Shipped |
209
+ | Selective disclosure | SD-JWT with key binding for hiding selected values while preserving verifiability | Shipped |
210
+ | Agent review receipts | Signed self declarations for AI involvement and review in PRs and issues | Shipped in 5.1.0, `agent-review/v0.1`, self declared assurance only |
211
+ | Inspect, pytest, and Hugging Face bridges | Opt in adapters for existing evaluation workflows | Shipped |
212
+ | External time evidence | RFC 3161, OpenTimestamps, and a bring your own anchor interface | Experimental, the `[anchors]` extra |
213
+ | Decision receipts | A gate's verdict over named evidence, bound to the receipts it judged, never a claim that the verdict was correct | Shipped |
214
+ | Outcome, relation, run ledger, trust pack, and verification summary predicates | Typed evidence graphs and relying party policy inputs | Experimental |
215
+ | TEE attestation bridge | RATS and EAT based enclave evidence | Preview, experimental |
216
+
217
+ The full predicate inventory and maturity labels live in [docs/predicates/README.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/README.md).
218
+
219
+ ## Security and trust
220
+
221
+ - The verifier uses `cryptography` for Ed25519 and `rfc8785` for canonicalization. It does not implement its own cryptographic primitives.
222
+ - Correctness is checked against external RFC 6962 vectors and a real Sigstore Rekor proof, not only against the project's own receipts.
223
+ - The test suite sits behind a mutation gate and property based parser fuzzing.
224
+ - The receipt signature is Ed25519 and is not post quantum. Post quantum coverage today is limited to witness side ML-DSA-44 cosignatures. A post quantum payload signature is on the roadmap and not yet built. Detail in [docs/ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/ANCHORS.md).
225
+ - Releases are built once, carry SLSA build provenance, and are published through PyPI Trusted Publishing, where PyPI records PEP 740 attestations for the same bytes.
226
+ - The conformance corpus includes positive controls and counter proofs. Read what it does and does not establish in [CONFORMANCE.md](https://github.com/b7n0de/proofbundle/blob/main/CONFORMANCE.md).
227
+ - The 30 minute adversarial adoption path is in [docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md).
228
+ - Security reports follow [SECURITY.md](https://github.com/b7n0de/proofbundle/blob/main/SECURITY.md).
229
+ - Release specific audit artefacts and residual risks remain visible rather than being folded into a single green status.
230
+
231
+ ### OpenSSF Scorecard
232
+
233
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/b7n0de/proofbundle/badge)](https://scorecard.dev/viewer/?uri=github.com/b7n0de/proofbundle)
234
+
235
+ The aggregate score is a live heuristic, not a product verdict. Several checks score zero for reasons that are written down rather than hidden, one sentence per check, in [docs/SCORECARD.md](https://github.com/b7n0de/proofbundle/blob/main/docs/SCORECARD.md). The [OpenSSF self assessment](https://github.com/b7n0de/proofbundle/blob/main/docs/openssf_best_practices_self_assessment.md) walks the Best Practices criteria honestly.
236
+
237
+ ## Standards and interoperability
238
+
239
+ proofbundle is a small offline receipt layer that complements, rather than replaces, systems such as in-toto, Sigstore, SCITT, transparency logs, trusted execution environments, and independent reproduction.
240
+
241
+ - [INTEROP.md](https://github.com/b7n0de/proofbundle/blob/main/INTEROP.md) compares the boundaries tool by tool.
242
+ - [docs/RECEIPT_ENVELOPE_PROFILE.md](https://github.com/b7n0de/proofbundle/blob/main/docs/RECEIPT_ENVELOPE_PROFILE.md) defines the portable envelope profile.
243
+ - [docs/IN_TOTO_PROFILE.md](https://github.com/b7n0de/proofbundle/blob/main/docs/IN_TOTO_PROFILE.md) describes the in-toto mapping.
244
+ - [docs/SCITT_CPB_MAPPING.md](https://github.com/b7n0de/proofbundle/blob/main/docs/SCITT_CPB_MAPPING.md) records the SCITT mapping.
245
+ - [docs/RELATED_WORK.md](https://github.com/b7n0de/proofbundle/blob/main/docs/RELATED_WORK.md) holds the research neighbourhood.
246
+
247
+ ## Documentation
248
+
249
+ | Reader | Start here |
250
+ |---|---|
251
+ | New user | [docs/GLOSSARY.md](https://github.com/b7n0de/proofbundle/blob/main/docs/GLOSSARY.md), [docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md) |
252
+ | Adopter or security reviewer | [docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md), [THREAT_MODEL.md](https://github.com/b7n0de/proofbundle/blob/main/THREAT_MODEL.md) |
253
+ | Implementer | [SPEC.md](https://github.com/b7n0de/proofbundle/blob/main/SPEC.md), [CONFORMANCE.md](https://github.com/b7n0de/proofbundle/blob/main/CONFORMANCE.md) |
254
+ | Integrator | [INTEGRATIONS.md](https://github.com/b7n0de/proofbundle/blob/main/INTEGRATIONS.md), [docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md) |
255
+ | Relying party | [docs/POLICY_PROFILES.md](https://github.com/b7n0de/proofbundle/blob/main/docs/POLICY_PROFILES.md), [docs/TRUST_ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/TRUST_ANCHORS.md) |
256
+ | Standards or research reader | [INTEROP.md](https://github.com/b7n0de/proofbundle/blob/main/INTEROP.md), [docs/RELATED_WORK.md](https://github.com/b7n0de/proofbundle/blob/main/docs/RELATED_WORK.md) |
257
+ | Release reviewer | [CHANGELOG.md](https://github.com/b7n0de/proofbundle/blob/main/CHANGELOG.md), [docs/PRE_TAG_AUDIT.md](https://github.com/b7n0de/proofbundle/blob/main/docs/PRE_TAG_AUDIT.md) |
258
+
259
+ ## Scope
260
+
261
+ proofbundle is not a hosted transparency service, a complete in-toto client, a trusted execution environment, a consensus system, or a compliance product by itself.
262
+
263
+ It is the portable, standards oriented receipt layer between an evidence producer and a relying party.
264
+
265
+ Roadmap, stated as not yet built. A post quantum payload signature, and a CLI flag to select the content root algorithm, `jcs-sha256-v1` is the signed default today.
266
+
267
+ ## Citation
268
+
269
+ Machine readable citation metadata is in [CITATION.cff](https://github.com/b7n0de/proofbundle/blob/main/CITATION.cff).
270
+
271
+ The archival software record uses concept DOI [10.5281/zenodo.21110642](https://doi.org/10.5281/zenodo.21110642). The Technical Note uses concept DOI [10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466).
272
+
273
+ ## Contributing
274
+
275
+ Read [CONTRIBUTING.md](https://github.com/b7n0de/proofbundle/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/b7n0de/proofbundle/blob/main/CODE_OF_CONDUCT.md).
276
+
277
+ Good first issues use the [`good-first-issue`](https://github.com/b7n0de/proofbundle/labels/good-first-issue) label. Security findings follow [SECURITY.md](https://github.com/b7n0de/proofbundle/blob/main/SECURITY.md).
278
+
279
+ The verifier core aims to remain small, dependency light, and auditable.
280
+
281
+ ## License
282
+
283
+ MIT, see [LICENSE](https://github.com/b7n0de/proofbundle/blob/main/LICENSE).
284
+
285
+ ---
286
+
287
+ <p align="center"><sub>proofbundle is part of <b>b7n0de</b>, Verified AI Work · <a href="https://b7n0de.com">b7n0de.com</a></sub></p>
@@ -0,0 +1,220 @@
1
+ <div align="center">
2
+
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/b7n0de/proofbundle/main/assets/b7n0de-hase-logo-dark.png">
5
+ <img alt="b7n0de, Verified AI Work, pink rabbit mascot over the B7N0DE wordmark" src="https://raw.githubusercontent.com/b7n0de/proofbundle/main/assets/b7n0de-hase-logo.png" width="200">
6
+ </picture>
7
+
8
+ <h1>proofbundle</h1>
9
+
10
+ [![CI](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/ci.yml)
11
+ [![demo reproducible](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml/badge.svg)](https://github.com/b7n0de/proofbundle/actions/workflows/demo-reproducible.yml)
12
+ [![PyPI](https://img.shields.io/pypi/v/proofbundle.svg)](https://pypi.org/project/proofbundle/)
13
+ [![Python](https://img.shields.io/pypi/pyversions/proofbundle.svg)](https://pypi.org/project/proofbundle/)
14
+ [![License: MIT](https://img.shields.io/badge/license-MIT-D6248A.svg)](https://github.com/b7n0de/proofbundle/blob/main/LICENSE)
15
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.21110642.svg)](https://doi.org/10.5281/zenodo.21110642)
16
+
17
+ **AI eval results need receipts.**
18
+
19
+ Turn an AI evaluation result, review, decision, or action outcome into a portable receipt that can be checked offline.
20
+
21
+ proofbundle lets a verifier check **which key signed the exact bytes** and **whether those bytes changed**. It does not prove that the result is true, that the signer is trustworthy, or that the evaluation was sound.
22
+
23
+ **One file. No verification server. No network required.**
24
+
25
+ [Quick start](#quick-start) · [What it proves](#what-a-receipt-proves) · [New in 5.1.0](#new-in-510) · [Adoption review](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md) · [Documentation](#documentation)
26
+
27
+ </div>
28
+
29
+ ## New in 5.1.0
30
+
31
+ [proofbundle 5.1.0](https://github.com/b7n0de/proofbundle/releases/tag/v5.1.0) adds a new receipt kind for disclosing AI agent involvement and review in pull requests and issues.
32
+
33
+ - **Agent review receipts** bind the reviewed GitHub object, the declared review runs, coverage, findings, limitations, and the human visible disclosure.
34
+ - **Stronger subject and disclosure binding** prevents a valid receipt from silently travelling to another object or a visible block from claiming more than the signed predicate.
35
+ - **Clearer time and coverage semantics** separate declared event time from witness observation time and reject ambiguous claims of complete coverage.
36
+ - **Hardened correction chains** prevent an untrusted receipt from taking over the current position in a correction or supersession chain.
37
+ - **Executable conformance coverage** now includes the agent review predicate and the receipt envelope profile.
38
+
39
+ One behaviour change deserves attention before upgrading. `automation_summary` now adds `RECEIPT_NOT_OK` to its blockers when a receipt is not `ok`. Read the [5.1.0 changelog](https://github.com/b7n0de/proofbundle/blob/main/CHANGELOG.md#510---2026-08-31-the-profile-a-stranger-can-read--minor) before updating automation.
40
+
41
+ > **Release status**
42
+ >
43
+ > The closing audit verdict for 5.1.0 was `PARTIAL_GATE_NO_WITHSTANDS`, not `WITHSTANDS_DEEPGATE`. The declared residual risks are published in [RESTRISIKO_510.md](https://github.com/b7n0de/proofbundle/blob/main/RESTRISIKO_510.md).
44
+
45
+ ## Quick start
46
+
47
+ Install the core verifier.
48
+
49
+ ```bash
50
+ python -m pip install proofbundle
51
+ ```
52
+
53
+ Requires Python 3.10 or newer. The core installs two dependencies, `cryptography` and `rfc8785`.
54
+
55
+ Download a real example receipt and verify it offline.
56
+
57
+ ```bash
58
+ curl -fsSL \
59
+ https://raw.githubusercontent.com/b7n0de/proofbundle/main/examples/example_bundle.json \
60
+ -o receipt.json
61
+
62
+ proofbundle verify receipt.json
63
+ ```
64
+
65
+ The command uses the local file only. Its exit code is part of the public contract.
66
+
67
+ ```text
68
+ 0 verified
69
+ 1 verification failed
70
+ 2 malformed input or usage error
71
+ 3 relying party policy not met
72
+ ```
73
+
74
+ Run the tamper demo.
75
+
76
+ ```bash
77
+ python -m pip install "proofbundle[eval]"
78
+ proofbundle demo
79
+ ```
80
+
81
+ The demo checks an honest receipt, multiple tampered variants, and a sample swap. It exits nonzero if a tamper is accepted.
82
+
83
+ For a guided walkthrough, see [docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md). For Inspect, see [docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md).
84
+
85
+ ## What a receipt proves
86
+
87
+ | A verified receipt can establish | A verified receipt does not establish |
88
+ |---|---|
89
+ | A stated key signed these exact bytes | The real world identity or honesty of the key holder |
90
+ | The signed content has not changed | The truth of the reported score or finding |
91
+ | A supplied Merkle inclusion or sample opening is valid | That the evaluation design was good |
92
+ | A declared threshold, provenance field, or relation is present and bound | That the computation itself was correct |
93
+ | A supplied relying party policy was met | That no omitted run or cherry picked result exists unless the chosen profile makes that claim testable |
94
+
95
+ This boundary is the product. proofbundle makes a claim attributable and tamper evident without turning the claim into truth.
96
+
97
+ Read the full [threat model](https://github.com/b7n0de/proofbundle/blob/main/THREAT_MODEL.md) and the project wide [non claims](https://github.com/b7n0de/proofbundle/blob/main/docs/NON_CLAIMS.md).
98
+
99
+ ## Choose the path that matches your task
100
+
101
+ | Task | Install | Start here |
102
+ |---|---|---|
103
+ | Verify an existing receipt offline | `proofbundle` | [Quick start](#quick-start), [SPEC.md](https://github.com/b7n0de/proofbundle/blob/main/SPEC.md) |
104
+ | Emit an evaluation receipt or preregistration | `proofbundle[eval]` | [docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md), [EVAL_CLAIM.md](https://github.com/b7n0de/proofbundle/blob/main/EVAL_CLAIM.md) |
105
+ | Integrate with Inspect AI | `proofbundle[inspect]` | [docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md) |
106
+ | Add a signed agent review disclosure to a PR or issue | `proofbundle` | [5.1.0 release notes](https://github.com/b7n0de/proofbundle/releases/tag/v5.1.0), [conformance/agent_review](https://github.com/b7n0de/proofbundle/tree/main/conformance/agent_review/) |
107
+ | Verify RFC 3161 or OpenTimestamps evidence | `proofbundle[anchors]` | [docs/ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/ANCHORS.md) |
108
+ | Verify ML-DSA-44 witness cosignatures | `proofbundle[pq]` | [docs/ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/ANCHORS.md) |
109
+ | Explore the TEE attestation bridge | `proofbundle[experimental]` | [docs/EXPERIMENTAL_ENCLAVE.md](https://github.com/b7n0de/proofbundle/blob/main/docs/EXPERIMENTAL_ENCLAVE.md) |
110
+
111
+ ## How it works
112
+
113
+ ```text
114
+ evaluation, review, decision, or action
115
+ │
116
+ ▼
117
+ canonical statement and commitments
118
+ │
119
+ ▼
120
+ signature and optional Merkle proofs
121
+ │
122
+ ▼
123
+ one portable receipt file
124
+ │
125
+ ▼
126
+ proofbundle verification offline
127
+ │
128
+ ▼
129
+ separate verification axes and policy result
130
+ ```
131
+
132
+ The verifier checks only the evidence supplied to it. Trust anchors, expected subjects, currentness information, and policy requirements come from the relying party.
133
+
134
+ ## Capabilities and maturity
135
+
136
+ proofbundle is a **beta project**. Shipped does not mean that every profile has the same maturity.
137
+
138
+ | Capability | What it provides | Maturity |
139
+ |---|---|---|
140
+ | Core receipt verification | Ed25519 signatures, RFC 6962 and RFC 9162 Merkle inclusion, strict parsing, offline verification | Shipped |
141
+ | Evaluation receipts | Metric and threshold claims, provenance, salted commitments, optional per sample audit | Shipped |
142
+ | Selective disclosure | SD-JWT with key binding for hiding selected values while preserving verifiability | Shipped |
143
+ | Agent review receipts | Signed self declarations for AI involvement and review in PRs and issues | Shipped in 5.1.0, `agent-review/v0.1`, self declared assurance only |
144
+ | Inspect, pytest, and Hugging Face bridges | Opt in adapters for existing evaluation workflows | Shipped |
145
+ | External time evidence | RFC 3161, OpenTimestamps, and a bring your own anchor interface | Experimental, the `[anchors]` extra |
146
+ | Decision receipts | A gate's verdict over named evidence, bound to the receipts it judged, never a claim that the verdict was correct | Shipped |
147
+ | Outcome, relation, run ledger, trust pack, and verification summary predicates | Typed evidence graphs and relying party policy inputs | Experimental |
148
+ | TEE attestation bridge | RATS and EAT based enclave evidence | Preview, experimental |
149
+
150
+ The full predicate inventory and maturity labels live in [docs/predicates/README.md](https://github.com/b7n0de/proofbundle/blob/main/docs/predicates/README.md).
151
+
152
+ ## Security and trust
153
+
154
+ - The verifier uses `cryptography` for Ed25519 and `rfc8785` for canonicalization. It does not implement its own cryptographic primitives.
155
+ - Correctness is checked against external RFC 6962 vectors and a real Sigstore Rekor proof, not only against the project's own receipts.
156
+ - The test suite sits behind a mutation gate and property based parser fuzzing.
157
+ - The receipt signature is Ed25519 and is not post quantum. Post quantum coverage today is limited to witness side ML-DSA-44 cosignatures. A post quantum payload signature is on the roadmap and not yet built. Detail in [docs/ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/ANCHORS.md).
158
+ - Releases are built once, carry SLSA build provenance, and are published through PyPI Trusted Publishing, where PyPI records PEP 740 attestations for the same bytes.
159
+ - The conformance corpus includes positive controls and counter proofs. Read what it does and does not establish in [CONFORMANCE.md](https://github.com/b7n0de/proofbundle/blob/main/CONFORMANCE.md).
160
+ - The 30 minute adversarial adoption path is in [docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md).
161
+ - Security reports follow [SECURITY.md](https://github.com/b7n0de/proofbundle/blob/main/SECURITY.md).
162
+ - Release specific audit artefacts and residual risks remain visible rather than being folded into a single green status.
163
+
164
+ ### OpenSSF Scorecard
165
+
166
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/b7n0de/proofbundle/badge)](https://scorecard.dev/viewer/?uri=github.com/b7n0de/proofbundle)
167
+
168
+ The aggregate score is a live heuristic, not a product verdict. Several checks score zero for reasons that are written down rather than hidden, one sentence per check, in [docs/SCORECARD.md](https://github.com/b7n0de/proofbundle/blob/main/docs/SCORECARD.md). The [OpenSSF self assessment](https://github.com/b7n0de/proofbundle/blob/main/docs/openssf_best_practices_self_assessment.md) walks the Best Practices criteria honestly.
169
+
170
+ ## Standards and interoperability
171
+
172
+ proofbundle is a small offline receipt layer that complements, rather than replaces, systems such as in-toto, Sigstore, SCITT, transparency logs, trusted execution environments, and independent reproduction.
173
+
174
+ - [INTEROP.md](https://github.com/b7n0de/proofbundle/blob/main/INTEROP.md) compares the boundaries tool by tool.
175
+ - [docs/RECEIPT_ENVELOPE_PROFILE.md](https://github.com/b7n0de/proofbundle/blob/main/docs/RECEIPT_ENVELOPE_PROFILE.md) defines the portable envelope profile.
176
+ - [docs/IN_TOTO_PROFILE.md](https://github.com/b7n0de/proofbundle/blob/main/docs/IN_TOTO_PROFILE.md) describes the in-toto mapping.
177
+ - [docs/SCITT_CPB_MAPPING.md](https://github.com/b7n0de/proofbundle/blob/main/docs/SCITT_CPB_MAPPING.md) records the SCITT mapping.
178
+ - [docs/RELATED_WORK.md](https://github.com/b7n0de/proofbundle/blob/main/docs/RELATED_WORK.md) holds the research neighbourhood.
179
+
180
+ ## Documentation
181
+
182
+ | Reader | Start here |
183
+ |---|---|
184
+ | New user | [docs/GLOSSARY.md](https://github.com/b7n0de/proofbundle/blob/main/docs/GLOSSARY.md), [docs/DEMO.md](https://github.com/b7n0de/proofbundle/blob/main/docs/DEMO.md) |
185
+ | Adopter or security reviewer | [docs/REVIEWERS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/REVIEWERS.md), [THREAT_MODEL.md](https://github.com/b7n0de/proofbundle/blob/main/THREAT_MODEL.md) |
186
+ | Implementer | [SPEC.md](https://github.com/b7n0de/proofbundle/blob/main/SPEC.md), [CONFORMANCE.md](https://github.com/b7n0de/proofbundle/blob/main/CONFORMANCE.md) |
187
+ | Integrator | [INTEGRATIONS.md](https://github.com/b7n0de/proofbundle/blob/main/INTEGRATIONS.md), [docs/INSPECT_HAPPY_PATH.md](https://github.com/b7n0de/proofbundle/blob/main/docs/INSPECT_HAPPY_PATH.md) |
188
+ | Relying party | [docs/POLICY_PROFILES.md](https://github.com/b7n0de/proofbundle/blob/main/docs/POLICY_PROFILES.md), [docs/TRUST_ANCHORS.md](https://github.com/b7n0de/proofbundle/blob/main/docs/TRUST_ANCHORS.md) |
189
+ | Standards or research reader | [INTEROP.md](https://github.com/b7n0de/proofbundle/blob/main/INTEROP.md), [docs/RELATED_WORK.md](https://github.com/b7n0de/proofbundle/blob/main/docs/RELATED_WORK.md) |
190
+ | Release reviewer | [CHANGELOG.md](https://github.com/b7n0de/proofbundle/blob/main/CHANGELOG.md), [docs/PRE_TAG_AUDIT.md](https://github.com/b7n0de/proofbundle/blob/main/docs/PRE_TAG_AUDIT.md) |
191
+
192
+ ## Scope
193
+
194
+ proofbundle is not a hosted transparency service, a complete in-toto client, a trusted execution environment, a consensus system, or a compliance product by itself.
195
+
196
+ It is the portable, standards oriented receipt layer between an evidence producer and a relying party.
197
+
198
+ Roadmap, stated as not yet built. A post quantum payload signature, and a CLI flag to select the content root algorithm, `jcs-sha256-v1` is the signed default today.
199
+
200
+ ## Citation
201
+
202
+ Machine readable citation metadata is in [CITATION.cff](https://github.com/b7n0de/proofbundle/blob/main/CITATION.cff).
203
+
204
+ The archival software record uses concept DOI [10.5281/zenodo.21110642](https://doi.org/10.5281/zenodo.21110642). The Technical Note uses concept DOI [10.5281/zenodo.21230466](https://doi.org/10.5281/zenodo.21230466).
205
+
206
+ ## Contributing
207
+
208
+ Read [CONTRIBUTING.md](https://github.com/b7n0de/proofbundle/blob/main/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/b7n0de/proofbundle/blob/main/CODE_OF_CONDUCT.md).
209
+
210
+ Good first issues use the [`good-first-issue`](https://github.com/b7n0de/proofbundle/labels/good-first-issue) label. Security findings follow [SECURITY.md](https://github.com/b7n0de/proofbundle/blob/main/SECURITY.md).
211
+
212
+ The verifier core aims to remain small, dependency light, and auditable.
213
+
214
+ ## License
215
+
216
+ MIT, see [LICENSE](https://github.com/b7n0de/proofbundle/blob/main/LICENSE).
217
+
218
+ ---
219
+
220
+ <p align="center"><sub>proofbundle is part of <b>b7n0de</b>, Verified AI Work · <a href="https://b7n0de.com">b7n0de.com</a></sub></p>