diff --git a/barretenberg/cpp/src/barretenberg/vm/avm_trace/gadgets/avm_keccak.cpp b/barretenberg/cpp/src/barretenberg/vm/avm_trace/gadgets/avm_keccak.cpp index f14dd6773b1..6a6230b417a 100644 --- a/barretenberg/cpp/src/barretenberg/vm/avm_trace/gadgets/avm_keccak.cpp +++ b/barretenberg/cpp/src/barretenberg/vm/avm_trace/gadgets/avm_keccak.cpp @@ -48,9 +48,14 @@ std::array AvmKeccakTraceBuilder::keccakf1600(uint32_t clk, std::a std::array AvmKeccakTraceBuilder::keccak(uint32_t clk, std::vector input, uint32_t size) { + // Pad input to a multiple of 8 bytes + if (!input.empty()) { + input.resize(8 * ((input.size() - 1) / 8 + 1)); + } + // We treat the input vector as an array of 64-bit integers for the avm (even though keccak takes in bytes). std::vector vector_input; - for (size_t i = 0; i < input.size(); i += 4) { + for (size_t i = 0; i < input.size(); i += 8) { auto uint64 = from_buffer(input, i); vector_input.push_back(uint64); }