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);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…