> ## Documentation Index
> Fetch the complete documentation index at: https://docs.manthan.systems/llms.txt
> Use this file to discover all available pages before exploring further.

# Signing

> Cryptographic signing infrastructure for attestations and trust verification.

# @parmanasystems/signing

The Signing package provides the cryptographic primitives used to create and verify signatures throughout Parmana.

Every authority verification outcome ultimately depends on cryptographic proof. The signing package provides the trust foundation that allows independent parties to verify attestations without trusting the runtime that produced them.

## Installation

```bash theme={null}
npm install @parmanasystems/signing
```

## Responsibilities

The signing layer provides:

* Ed25519 signature generation
* Signature verification
* Signer abstractions
* Key management interfaces
* Attestation signing
* Trust root integration

## Why it exists

Authority verification requires more than policy evaluation.

A verifier must be able to prove:

* who issued the attestation
* that the attestation was not modified
* that the outcome is authentic
* that the runtime possessed the correct signing authority

The signing package provides those guarantees.

## Trust model

```text theme={null}
Authority Verification Outcome
             ↓
      Canonical Form
             ↓
      Ed25519 Signature
             ↓
      Execution Attestation
             ↓
 Independent Verification
```

## Core concepts

### Signers

A signer is responsible for producing cryptographic signatures.

Typical implementations include:

* Local development signers
* Production key-backed signers
* HSM-backed signers
* Cloud KMS signers

All implementations produce the same signature format.

### Verifiers

Verifiers validate signatures using the corresponding public key.

Verification proves:

* authenticity
* integrity
* non-tampering

### Ed25519

Parmana uses Ed25519 because it provides:

* strong security
* deterministic signatures
* fast verification
* broad ecosystem support

## Attestation signing

Every execution attestation is signed.

The signature covers:

```text theme={null}
executionId
policyId
policyVersion
decision
runtimeHash
executionFingerprint
```

If any field changes, verification fails.

## Independent verification

Verification does not require:

* the original runtime
* the original database
* the original deployment

A verifier only needs:

```text theme={null}
Attestation
+
Public Key
```

to validate authenticity.

## Relationship to other packages

| Package                             | Responsibility           |
| ----------------------------------- | ------------------------ |
| `@parmanasystems/signing`           | Cryptographic signatures |
| `@parmanasystems/execution-runtime` | Attestation generation   |
| `@parmanasystems/verifier`          | Independent verification |
| `@parmanasystems/canonical`         | Canonical serialization  |
| `@parmanasystems/core`              | End-to-end SDK           |

## Security properties

### Integrity

Tampering invalidates the signature.

### Authenticity

Only authorized signers can issue attestations.

### Non-repudiation

Issued attestations remain verifiable later.

### Portability

Verification can occur anywhere.

## Design principles

### Cryptographic trust

Trust derives from signatures, not infrastructure.

### Runtime independence

Verification works without runtime access.

### Long-term verifiability

Attestations remain verifiable years later.

### Deterministic

The same attestation always verifies the same way.

## See also

* `/packages/verifier`
* `/packages/canonical`
* `/packages/execution-runtime`
* `/verification/attestations`
* `/architecture/trust-portability`
