# Decentraland crypto (Rust)
This crate is a port of [`@dcl/crypto`](https://github.com/decentraland/decentraland-crypto)
originally implemented on javascript and provides the necessary tools to create and validate
Decentraland's Authentication Chains.
## Test
To run all tests you need to provide a ethereum rpc endpoint.
First, create a `.cargo/config.toml` file using the template provided in the repository and set your rpc provider.
```bash
cp .cargo/config.toml.example .cargo/config.toml
```
Once configured you can run all tests
```bash
cargo test --doc
```
## Release
> :warning: Do not modify `package.version` on `Cargo.toml`
Use [Github Releases](https://github.com/decentraland/decentraland-crypto-rust/releases) to create a new version.
## TODO
- [x] serialize and deserialize auth chains
- [x] verify auth chains
- [x] simple
- [x] ephemeral
- [x] verify auth chain expiration
- [x] verify personal signatures
- [x] verify [EIP-1271](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1271.md) signatures
- [x] create identity
- [x] create auth chain from identity
- [x] load identity from file
- [ ] release process
- [x] build cache
- [ ] coverage
- [x] publish cargo