![banner](assets/banner.png)
# Yobicrypto
[![Travis branch](https://img.shields.io/travis/yobicash/yobicrypto/master.svg)](https://travis-ci.org/yobicash/yobicrypto)
[![Coveralls github branch](https://img.shields.io/coveralls/github/yobicash/yobicrypto/master.svg)](https://coveralls.io/github/yobicash/yobicrypto?branch=master)
[![Crates.io](https://img.shields.io/crates/v/yobicrypto.svg)](https://crates.io/crates/yobicrypto)
[![Docs.rs](https://docs.rs/yobicrypto/badge.svg)](https://docs.rs/yobicrypto)
[![Crates.io](https://img.shields.io/crates/l/yobicrypto.svg)]()
Cryptographyc toolkit used in [Yobicash](https://yobicash.org).
## Table of Contents
- [Install](#install)
- [Usage](#usage)
- [Maintainers](#maintainers)
- [License](#license)
- [Contributing](#contributing)
## Install
To install it add in your Cargo.toml:
```toml
# Cargo.toml
[dependencies]
yobicrypto = "^0.2"
```
and in the root of your crate:
```rust
//main.rs
extern crate yobicrypto;
```
## Usage
Look at the [documentation](https://docs.rs/yobicrypto) or at the tests for guidance.
```rust
// main.rs
use yobicrypto::{Random, Scalar, ZKPWitness, ZKPProof};
let instance = Scalar::random();
let witness = ZKPWitness::new(instance)?;
let message = Random::bytes(64);
let proof = ZKPProof::new(instance, &message)?;
let verified = proof.verify(witness)?;
assert!(verified);
```
## Maintainers
[@chritchens](https://github.com/chritchens)
## License
This project is license under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT)
at your option.
## Contributing
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in yobicrypto by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.