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§
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.