INNER CODE UNIT · Rust
w1_encode
orion-rs/orion · src/hazardous/dsa/ml_dsa/internal/mod.rs:132
fn w1_encode<const K: usize>(w1: &Vector<K>, out: &mut [u8]) {
debug_assert_eq!(K, Self::DIM_K);
debug_assert_eq!(out.len(), K * Self::W1_BITPACK_SIZE);
for (poly, chunk) in w1
.elems
.iter()
.zip(out.chunks_exact_mut(Self::W1_BITPACK_SIZE))
{
Self::bitpack_polynomial_vector_w1(poly, chunk);
}
}
/// FIPS-204, Algorithm 17.
fn bitpack_ring_element_d(w: &RingElement, out: &mut [u8]) {
debug_assert_eq!(MlDsa44::D, MlDsa65::D);
debug_assert_eq!(MlDsa65::D, MlDsa87::D);
debug_assert_eq!(out.len(), Self::D_BITPACK_SIZE);