An open API service indexing awesome lists of open source software.

https://github.com/pluto/aes-circuits

Circom AES-GCM circuits
https://github.com/pluto/aes-circuits

circuit cryptography zk

Last synced: 6 months ago
JSON representation

Circom AES-GCM circuits

Awesome Lists containing this project

README

          


AES-GCM circom circuits



Contributors


Tests


Lint

> [!WARNING]
> ⚠️ Repository No Longer Maintained ⚠️
>https://github.com/pluto/noir-web-prover-circuits
> This repository has been archived and is no longer maintained.
All development has moved to the [noir-web-prover-circuits](https://github.com/pluto/noir-web-prover-circuits) repository under the Pluto organization.

## Overview

This repository contains an implementation of [AES-GCM](https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-38d.pdf) 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

- [AES-GCM deep dive](https://gist.github.com/thor314/53cdab54aaf16bdafd5ac936d5447eb8)

### Prerequisites

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

```sh
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 `: equiv to `circom --wasm ...`
`npx circomkit witness `: equiv to call generate_witness.js
```

## License

Licensed under the Apache License, Version 2.0 ([LICENSE-APACHE](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](https://t.me/pluto_xyz/1) to chat about Pluto's development.

Our contributor guidelines can be found in [CONTRIBUTING.md](./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.