INNER CODE UNIT · Rust

flatten_blocks

tlsnotary/tlsn · crates/components/cipher/src/lib.rs:248

fn flatten_blocks(
    vm: &mut dyn Vm<Binary>,
    blocks: impl IntoIterator<Item = Slice>,
) -> Result<Vector<U8>, CipherError> {
    use mpz_circuits::CircuitBuilder;

    let blocks = blocks.into_iter().collect::<Vec<_>>();
    let len: usize = blocks.iter().map(|block| block.len()).sum();

    let mut builder = CircuitBuilder::new();
    for _ in 0..len {
        let i = builder.add_input();
        let o = builder.add_id_gate(i);
        builder.add_output(o);
    }

    let circuit = builder.build().expect("flatten circuit should be valid");

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…