pub trait Params: Clone + Default {
type Hash: TweakableHash;
Show 15 associated constants and 0 method
const N: usize;
const H: usize;
const D: usize;
const H_PRIME: usize;
const A: usize;
const K: usize;
const M: usize;
const NAME: &'static str;
const LG_W: usize = 4;
const W: usize = 16;
const LEN1: usize = _;
const LEN2: usize = 3;
const LEN: usize = _;
const PK_LEN: usize = _;
const SK_LEN: usize = _;
}Expand description
Trait defining all compile-time parameters for an SLH-DSA instance.
Implementors of this trait represent a specific FIPS 205 parameter set (e.g.,
SLH-DSA-SHAKE-128f). The constants fully determine key sizes, signature sizes,
tree structures, and hash output lengths; the Hash associated
type selects the tweakable-hash instantiation (SHAKE or SHA-2).
See FIPS 205, Table 2 for the complete list of parameter values.
Required Associated Constants§
Sourceconst N: usize
const N: usize
Security parameter n: hash output length in bytes.
This is the fundamental security parameter. All hash outputs, secret values,
and tree nodes are n bytes long.
Sourceconst H: usize
const H: usize
Total hypertree height: h = d * h'.
Determines the total number of FORS key pairs the scheme can use: 2^h.
Sourceconst D: usize
const D: usize
Number of layers d in the hypertree.
The hypertree consists of d stacked XMSS trees, each of height h'.
Sourceconst H_PRIME: usize
const H_PRIME: usize
Height h' of each individual XMSS tree within the hypertree.
Each XMSS tree authenticates 2^h' keys in the layer below it.
Provided Associated Constants§
Sourceconst W: usize = 16
const W: usize = 16
Winternitz parameter w = 2^lg_w = 16.
Controls the time/size trade-off in WOTS+ chains: each chain has w - 1 steps.
Sourceconst LEN1: usize = _
const LEN1: usize = _
WOTS+ parameter len1 = ceil(8*n / lg_w) = 2*n (since lg_w = 4).
Number of base-w digits needed to represent an n-byte message.
Required Associated Types§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.