1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! Cry is a advance cryptography library
//! based on ECC and permutation.
//!
//! ## Primitive for Cry.
//!
//! Cry has two main cryptography primitive:
//! - Elliptic Curve
//! - Sponge Construction.
//!
//! We can use these two primitive to build all the
//! world of cryptography.
//!
//! ### Elliptic Curve
//!
//! Elliptic Curve has two types, point and
//! scalar number. These define on $G_p$, $p$ is a
//! prime number, also is number of elements.
//!
//! Point on EC will persent by uppercase letter, $G$.
//! scalar number will persent by lowercase letter $a$.
//!
//! ### Sponge Construction
//!
//! Sponge construction is a base of permutation cryptography.
//! It can absorb data, squeeze data, or blender state.
//!
//! We can use this to build hash function and symmetric encryption.
//!
//! ## Cryptography toolkit
//!
//! This crate support some algorithm based primitive abstraction.
//! All algorithms list here:
//! - keypair: Addition section for key deriving.
//! - keyderive: Derive child keys for all type of keys.
//! - strobe: A framework for symmetric cryptography and hash function.
//! - DH: Key exchange based on asymmetric cryptography.
//! - Schnorr: Non-interactive short zero-knowledge proof, for digital signature.
//! - MuSig: Signature aggregated based on schnorr, this algorithm from bitcoin community.
//! - Pederson: Pederson commitment.
//! - SSS: Shamir's Secret Sharing based on Lagrange interpolation.
//! - VSS: Verifiable Secret Sharing based on asymmetric.
//! - DKG: Distributed Key Generation.
//! - Threshold: Threshold Schnorr Signature.
//! - VRF: Verifiable Random Function
// For testing
extern crate std;
// pub mod keccak;
// pub mod strobe;