Skip to content

§11.7/§11.3: P-256 cipher suite (KT_128_SHA256_P256, 0x0001) #27

Description

@OR13

The only out of scope row in the coverage table, and the largest remaining chunk of coverage that a peer can actually verify. katie implements the suite fully (crypto/suites/kt_sha256_p256.go, crypto/vrf/p256).

Missing here: ECVRF-P256-SHA256-TAI (§11.7) and ECDSA-P256 signature verification (§11.3, §11.4). hash.rs, commitment.rs and suite.rs already handle both suites.

What it buys, precisely. Both suites use SHA-256 and identical commitment fixed bytes, so commitment.json, log-tree.json, prefix-tree.json, log-append.json, prefix-mutation.json and the pure-math families are byte-identical under P-256 and gain nothing. The new surface is:

  • a new VRF primitive with two independent oracles — katie and RFC 9381's test vectors;
  • ECDSA-P256 tree-head and auditor-head signatures (verification is deterministic, so katie-produced signatures pin fine);
  • 0x0001 in every Configuration encoding, pinning §11.1/§17.1 in both suites;
  • VRF.Np = 81, which changes every BinaryLadderStep's length. The response decoders take proof_size as context and have only ever run at 80.

Cost: a p256 dependency, and a parallel VRF module — vrf.rs is curve25519-dalek-specific throughout and implements proving as well as verifying.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions