1 个不稳定版本
0.1.0 | 2020年5月1日 |
---|
#6 在 #pake
10KB
132 代码行
cpace
使用 ristretto255 群实现的 CPace PAKE 的 Rust 实现。
此实现基于 Filippo Valsorda 的 go-cpace-ristretto255 实现,并试图与之兼容。请注意,该实现大致基于 draft-haase-cpace-01,因此所有这些实现都是某种移动的目标。
文档.
lib.rs
:
使用 Ristretto255 实现的 CPace 密码认证密钥交换 (PAKE)。请注意,这是规范草稿的实验性实现 -- 在 1.0 版本之前不要部署它。
此实现基于 Filippo Valsorda 的 go-cpace-ristretto255
。
示例
use rand::rngs::OsRng;
use cpace;
let (init_msg, state) = cpace::init(
"password",
cpace::Context {
initiator_id: "Alice",
responder_id: "Bob",
associated_data: b"",
},
OsRng,
)
.unwrap();
let (bob_key, rsp_msg) = cpace::respond(
init_msg,
"password",
cpace::Context {
initiator_id: "Alice",
responder_id: "Bob",
associated_data: b"",
},
OsRng,
)
.unwrap();
let alice_key = state.recv(rsp_msg).unwrap();
assert_eq!(alice_key.0[..], bob_key.0[..]);
依赖项
~3MB
~58K SLoC