vocdoni / keccak256-circom

keccak256 hash implementation in Circom

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

keccak256-circom Test

Keccak256 hash function (ethereum version) implemented in circom. Spec: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf

Warning: WIP, this is an experimental repo.

Status

Initial version works, compatible with Ethereum version of Keccak256.

It needs around 150848 (151k) constraints.

For context: Rapidsnark proof generation time:

  • 1.1M constraints -> 7 seconds (8 CPU)
  • 128M constraints -> <2min (64 CPU)

Usage

  • import the lib in the package.json:
"dependencies": {
	"keccak256-circom": "git+https://github.com/vocdoni/keccak256-circom"
}
  • Usage:
pragma circom 2.0.0;

include "../node_modules/keccak256-circom/circuits/keccak.circom";

// for a input & output of 32 bytes:
component main = Keccak(32*8, 32*8);

About

keccak256 hash implementation in Circom

License:GNU General Public License v3.0


Languages

Language:JavaScript 51.3%Language:Go 48.7%