Skip to content

pluto/aes-proof

Repository files navigation

AES-GCM circom circuits

Overview

This repository contains an implementation of AES-GCM in Circom. We have used circomkit to generate and test witnesses in the test files. We have also used to related rust code in the src generate test vectors from official cryptography libraries. The Circuits and circomkit tests are in the circuits directory.

Design Documents

Prerequisites

To use this repo, you need to install the just command runner:

cargo install just
# or use cargo binstall for fast install:
cargo binstall -y just

# install dependencies
just install

Testing

Test witnesses are validated by circomkits tests. These can be run with: just circom-test

Testing Circom

Example commands for using circom-kit

just circom-test # test all circom tests 
just circom-testg TESTNAME # test a named test

# also see:
`npx circomkit`: circomkit commands
`npx circomkit compile <circuit>`: equiv to `circom --wasm ...`
`npx circomkit witness <circuit> <witness.json>`: equiv to call generate_witness.js

License

Licensed under the Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)

Contributing

We welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join our main Telegram channel to chat about Pluto's development.

Our contributor guidelines can be found in CONTRIBUTING.md. A good starting point is issues labelled 'bounty' in our repositories.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.