Evidence integrity
- Deterministic canonical hashing
- Stored request/response binding checks
- Fail-closed offline bundle verification
AELITIUM / release v0.3.0 / Apache-2.0
An open-source Python library and CLI that produces evidence bundles and checks their internal consistency under a governed schema and canonicalization contract.
Same request hash. Different response hash. One concrete use case within a broader assurance model.
Core consistency
Optional / policy-dependent
Illustrative state mix. Optional and policy-dependent dimensions vary with bundle evidence and explicitly supplied verifier inputs.
Current release
v0.3.0 adds separate assurance checks beyond the core hash flow.
Assurance model
Each dimension is reported separately. Depending on the dimension, evidence and verifier inputs, a state can be valid, invalid, absent, unestablished or not evaluated.
Evaluated independently when their prerequisites are present.
payload_integrity
bundle check
Payload, schema, canonical bytes, manifest and payload-hash consistency.
binding_field_consistency
when present
Consistency among stored v1 request, response and binding hash fields.
invocation_identity_consistency
when present
Stored versioned invocation identity structure and hash consistency.
invocation_binding_consistency
when present
Stored invocation identity hash-to-response hash link consistency.
These checks depend on explicit evidence or verifier inputs.
signature_validity
when present
Checks Ed25519 signature validity when signature material is present. The dimension can be ABSENT unless a signature is required.
trusted_signer_identity
external input
Exact key-fingerprint match against an explicitly supplied external trust store; otherwise UNESTABLISHED.
freshness
explicit policy
Freshness uses an explicit maximum age and UTC reference time. No implicit clock is used.
authorization
not evaluated
No authorization decision is implemented; this dimension is always NOT_EVALUATED in v0.3.0.
Where it fits
Four concrete developer workflows supported by v0.3.0.
REQUEST_HASH
SAME
RESPONSE_HASH
DIFFERENT
Compare evidence from two runs and detect when the same recorded request hash is associated with different recorded response hashes. AELITIUM reports the difference without attributing a cause.
aelitium verify-bundle
assurance states
Check the internal consistency of a governed evidence bundle offline before using it in a review, investigation or downstream workflow.
aelitium scan
potential call sites
Scan Python source for potential LLM call sites that may not use a supported AELITIUM capture path.
aelitium scan ./src --ci
CI result
Run the AELITIUM scanner in CI to surface potential Python LLM call sites without supported capture instrumentation.
Concrete use case
Two bundles can have the same stored request hash and different recorded response hashes. The comparison does not attribute a cause.
“Summarise the key risks of deploying LLMs in production in one sentence.”
Key risks include non-deterministic outputs, prompt injection vulnerabilities, hallucinated facts, and the absence of inspectable evidence records.
response_hash: 2f1563cc8c0b7b71…
“Summarise the key risks of deploying LLMs in production in one sentence.”
Primary risks are hallucination, data leakage, adversarial prompt injection, and unpredictable behaviour changes following silent model updates.
response_hash: c41d8e3b5f9a2201…
The selected recorded request fields have the same v1 request hash. The recorded response hashes differ. AELITIUM reports the compared fields without attributing a cause.
Interactive demo
Edit either recorded response. This browser demo compares response-text SHA-256 values; it does not perform bundle verification.
Mechanism
AELITIUM creates evidence bundles for recorded LLM interactions and checks payload integrity plus stored binding and invocation consistency offline, with separate results for optional signatures, explicit external trust-store matching and declared-time freshness.
Records selected request and response fields on supported adapter paths.
from aelitium import capture_openai
Computes deterministic request_hash and response_hash values.
request_hash
response_hash
Links the stored request and recorded response hashes with binding_hash.
request_hash + response_hash
→ binding_hash
Checks governed bundle consistency offline and fails closed on invalid evidence.
aelitium verify-bundle ./evidence
binding_hash = SHA256(canonical({request_hash, response_hash}))
Explicit boundary
Internal consistency is deliberately separate from claims about provider execution or historical non-modification.
Get started
Install the Python package, capture a supported call path and check the resulting bundle offline.