@parmanasystems/canonical
The Canonical package provides deterministic serialization and canonicalization used throughout Parmana. It ensures that identical data always produces identical hashes, signatures, execution fingerprints, and verification results regardless of platform, runtime, or language implementation.Installation
Responsibilities
The canonical layer provides:- Deterministic serialization
- Canonical JSON generation
- Stable hashing inputs
- Signature consistency
- Cross-platform reproducibility
- Verification compatibility
Why it exists
Cryptographic systems depend on exact byte-for-byte consistency. Without canonicalization:Core concepts
Canonical Form
Before hashing or signing, data is transformed into a deterministic representation.Execution Fingerprints
Execution fingerprints are derived from canonicalized inputs.- identical inputs produce identical fingerprints
- replay protection remains stable
- verification is reproducible
Signature Consistency
Attestation signatures operate on canonical payloads. This ensures:- deterministic signing inputs
- reproducible verification
- language-independent validation
Relationship to other packages
| Package | Responsibility |
|---|---|
@parmanasystems/canonical | Deterministic serialization |
@parmanasystems/signing | Signature generation |
@parmanasystems/execution | Fingerprint generation |
@parmanasystems/verifier | Verification |
@parmanasystems/core | End-to-end SDK |
Why canonicalization matters
Without canonicalization:Design principles
Deterministic
The same input always produces the same canonical form.Portable
Different runtimes produce identical results.Verifiable
Hashes and signatures remain reproducible.Long-term stable
Historical attestations remain verifiable years later.Typical usage
Most developers use canonicalization indirectly through:@parmanasystems/core@parmanasystems/execution@parmanasystems/signing
Security benefits
Stable Hashes
Hashes are independent of serialization order.Stable Signatures
Signatures are generated from reproducible payloads.Independent Verification
Third parties can reproduce hashes exactly.Audit Reproducibility
Historical authority verification outcomes remain verifiable.See also
/packages/signing/packages/execution/packages/verifier/verification/attestations/architecture/trust-portability