# Security Policy
## Reporting a Vulnerability
If you discover a security vulnerability in this crate, **do not open a public issue**.
Please report it privately via one of:
- **GitHub Security Advisories**: [Report a vulnerability](https://github.com/moss-piglet/metamorphic-log/security/advisories/new)
- **Email**: security@mosspiglet.dev
We will acknowledge receipt within 48 hours and provide a timeline for a fix.
## Scope
This policy covers the `metamorphic-log` Rust crate and its verification/monitor
SDKs, including:
- Canonical leaf encoding and RFC 6962 / RFC 9162 Merkle hashing
- Inclusion and consistency proof verification
- Checkpoint / signed-note parsing and (hybrid PQ) checkpoint signature verification
- CONIKS-style index-privacy (VRF) verification
- WASM / NIF / UniFFI bindings
Cryptographic primitives themselves live in
[`metamorphic-crypto`](https://github.com/moss-piglet/metamorphic-crypto);
report primitive-level issues there.
## Supported Versions
| 0.1.x | Yes |
| < 0.1 | No |
## Security Design
- `#![forbid(unsafe_code)]` — no unsafe Rust at this layer
- **Single source of truth:** all cryptographic primitives come from the audited
[`metamorphic-crypto`](https://github.com/moss-piglet/metamorphic-crypto) crate
(SHA-256 / SHA3-512, composite hybrid PQ signatures, ML-KEM). There is **no
parallel crypto stack** in this repository.
- All other dependencies are from the audited
[RustCrypto](https://github.com/RustCrypto) project
- Secret key material is zeroized after use via `zeroize` (in `metamorphic-crypto`)
- OS CSPRNG only (no userspace PRNG)
- The fixed Layer-1 invariants (SHA-256 tree hashing, canonical leaf byte
layout, RFC 6962/9162 proof protocol) are auditable and recomputable by
independent witnesses