Skip to main content

Crate confium_tc_frost_p256

Crate confium_tc_frost_p256 

Source
Expand description

FROST threshold signature over ECDSA P-256.

Implements real Shamir secret sharing over the P-256 scalar field plus real P-256 ECDSA signing/verification. Used by OIML CNML IA quorum and Mode 2 enterprise PKI replacement for compatibility with existing P-256 PKI.

§Important: threshold ECDSA caveats

True threshold ECDSA signing (where the secret is never reconstructed) requires the Multiplicative-to-Additive (MtA) protocol used by confium-tc-cmp20 and confium-tc-gg18. This crate provides:

  • Real Shamir secret sharing over P-256 scalars
  • Real Lagrange interpolation to reconstruct the secret from T shares
  • Real P-256 ECDSA sign/verify

For demonstration, integration testing, and as the underlying primitives for FROST-style schemes. For production threshold ECDSA signing, use confium-tc-cmp20.

See TODO.roadmap/04-threshold-cryptography.md for the FFI spec.

§Example

use confium_tc_frost_p256::{generate_keypair, split_secret, recover_secret};

let kp = generate_keypair();
// 3-of-5 secret sharing of the keypair's secret scalar.
let shares = split_secret(&kp.secret_scalar, 3, 5);
// Any 3 shares reconstruct the original secret.
let subset: Vec<_> = shares.iter().take(3).collect();
let recovered = recover_secret(&subset)?;
assert_eq!(recovered, kp.secret_scalar);

Re-exports§

pub use p256;
pub use keys::*;
pub use shamir::*;
pub use sign::*;

Modules§

keys
Keypair generation for threshold P-256.
scalar
P-256 scalar field helpers.
shamir
Real Shamir secret sharing over the P-256 scalar field.
sign
P-256 ECDSA signing.

Constants§

ALGORITHM
Algorithm identifier for FROST-P256.