1个不稳定版本
0.1.0 | 2020年3月25日 |
---|
#2084 in 密码学
33KB
891 行
gMorph
完全使用Rust编写,旨在轻松交叉编译为WebAssembly,以便在gWasm中使用。
免责声明
gMorph
非常实验性,因此可能会出现意外问题。此外,请注意,我们对加密方案的安全性不做任何声明。这项工作作为FHE在gWASM上的概念验证提供,基本上用于演示目的。如果您发现一个错误,请在此处提交错误报告这里。
# Cargo.toml
[dependencies]
gmorph = "0.1"
示例使用
use gmorph::*;
use num_traits::Zero;
let key_pair = KeyPair::default();
let enc: Vec<_> = (1..10)
.map(|x| Encoded::encode(x).encrypt(&key_pair))
.collect();
let enc = enc.into_iter().fold(Encoded::zero(), |acc, x| acc + x);
let given = enc.decrypt(&key_pair).decode();
let expected: u32 = (1..10).sum();
assert_eq!(expected, given, "the sums should be equal, and equal to 45");
示例
您可以在examples文件夹中找到更多示例。例如,要运行examples/simple_mul.rs
,请调用
cargo run --release --example simple_mul
依赖关系
~5.5MB
~109K SLoC