Conformance

Cross-language conformance.

The Handshake Protocol ships with a cross-language conformance suite. Implementations claiming a level (Core, Extended, or Sovereign — see spec §16) MUST pass all test vectors at that level. Cross-language byte-equality on JCS canonicalization, Ed25519 signatures, and ML-DSA-65 hybrid signatures is asserted on every release.

All 4 implementations pass
Spec version 0.2.3 · 6 vectors per implementation · last refreshed May 5, 2026 at 4:00 PM UTC

Per-language status

Reference SDK results for v0.2.3. Byte-equal means every output matches the canonical Rust core, octet for octet, across all vectors at the implementation’s claimed level.

Rusthandshake-rs
6/6 pass
canonical core
byte-equal: canonicallast run: May 5, 2026
Pythonhandshake
6/6 pass
PyO3 FFI shim over Rust core
byte-equal: canonicallast run: May 5, 2026
TypeScript@workspace/handshake-ts
6/6 pass
NAPI-RS FFI shim over Rust core
byte-equal: canonicallast run: May 5, 2026
Gohandshake-go
6/6 pass
parallel native implementation
byte-equal: canonicallast run: May 5, 2026

How to run conformance yourself

All test vectors are published at github.com/handshake-ai-protocol/spec/test-vectors/v0.2.3 under CC BY 4.0. An implementation claiming a conformance level passes all vectors for that level using only the public spec — no vendor-specific extensions allowed.

Source: bundled fallback (private repo HEAD ab141af6)

Reading the protocol? Read the spec