INNER CODE UNIT · Rust
xor
tlsnotary/tlsn · crates/components/cipher/src/lib.rs:162
let xor = Arc::new(xor(self.block_size() * 8));
let mut pos = 0;
let mut outputs = Vec::with_capacity(self.blocks.len());
for block in &self.blocks {
let call = CallBuilder::new(xor.clone())
.arg(block.output)
.arg(
input
.get(pos..pos + self.block_size())
.expect("input length was checked"),
)
.build()?;
let output: Vector<U8> = vm.call(call).map_err(CipherError::new)?;
outputs.push(output);
pos += self.block_size();
}
let output = flatten_blocks(vm, outputs.iter().map(|block| block.to_raw()))?;