Skip to content

etymolt/conformance

Etymolt Conformance

Language-agnostic conformance test suite for EVP/1. Run any issuer or consumer implementation against this corpus to certify compliance.

License: Apache-2.0

What this is

The separated conformance suite for EVP/1 — modeled on sigstore/sigstore-conformance and json-schema-org/JSON-Schema-Test-Suite. The protocol spec lives in etymolt/evp-spec; the test vectors that prove compliance live here.

Two conformance dimensions:

  1. Issuer conformance — does your POST /v1/verify endpoint return a verdict that validates against the EVP/1 schema and signs correctly?
  2. Consumer conformance — does your consumer surface render the disclaimer verbatim, surface temporal validity correctly, and reject malformed signatures?

Layout

.
├── issuer-conformance/
│   ├── README.md
│   ├── runner.py             # The harness: hits your /v1/verify, validates results
│   └── checks/               # Per-axis check definitions
├── consumer-conformance/
│   ├── README.md
│   ├── runner.py             # The harness: feeds your consumer test vectors
│   └── vectors/              # Inputs the consumer must handle correctly
└── test_vectors/             # Mirrors the canonical set from evp-spec
    ├── valid/                #   plus additional edge cases
    ├── invalid/
    ├── canonicalization/
    ├── key_rotation/
    └── temporal_validity/

Running the suite

git clone https://github.com/etymolt/conformance.git
cd conformance
pip install -r requirements.txt

# Issuer conformance against api.etymolt.com (reference issuer)
python issuer-conformance/runner.py --endpoint https://api.etymolt.com/v1/verify

# Consumer conformance against your implementation
python consumer-conformance/runner.py --consumer-cmd "node my-render.js"

Badges

Pass the full suite, get a conformance badge. Add to your README:

![EVP/1 Conformance](https://img.shields.io/badge/EVP%2F1-conformant-green.svg)

(Badge issuance pending; for now self-attest by linking your conformance run output.)

Status

This suite is early. The initial test vectors mirror the canonical set in evp-spec/test_vectors/; the issuer + consumer runners are scaffolded but minimal. Contributions welcome — see CONTRIBUTING.md.

Why a separate repo

Per the json-schema-org pattern: conformance test suites that live next to spec language end up versioning awkwardly. A separate repo lets the suite evolve faster than the spec, lets third-party issuers and consumers run CI against a stable URL, and lets the test corpus be language-agnostic by design.

License

Apache-2.0 for the runner code and harness. The test vectors are CC-BY-4.0. The "Etymolt" name and logo are trademarks of Etymolt Inc. and are not licensed under either.

Contact

hello@etymolt.com

Naming, attested.

About

EVP/1 conformance test suite. Run any EVP/1 issuer or consumer implementation against this corpus to certify compliance.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors