9个版本 (稳定)
使用旧的Rust 2015
2.0.0 | 2016年10月22日 |
---|---|
1.1.0 | 2016年10月14日 |
1.0.4 | 2016年4月5日 |
1.0.0 | 2016年3月28日 |
0.1.1 | 2016年3月21日 |
1969在 密码学
每月24次下载
11KB
135 行
大家好,欢迎来到我的crate "edcert-letter"的git页面。
Edcert是一个简单的数据认证和授权库。edcert-letter提供了一个Letter类型,可用于简单的内容验证。
Edcert是如何工作的
- 您创建一个主密钥对。这将用于签名最高证书。
- 您创建一个根证书。用主密钥签名它。
- 现在您可以创建其他证书并使用证书相互签名。
- 通过网络以json编码格式传输您的证书。
- 使用".sign"和".verify"方法使用证书签名和验证数据。
该设计使用"超级安全、超级快速"的椭圆曲线Ed25519,您可以在此了解更多信息
对于密码学,它使用基于NaCl的sodiumoxide库,这是Dan Bernstein等人知名密码学库。
Letter是如何工作的
您可以直接使用Ed25519密钥对使用Letter
// You generate a ed25519 keypair
let (public_key, private_key) = ed25519::generate_keypair();
// Sign the letter with the private key
let test_str = "hello world";
let mut letter = Letter::with_private_key(test_str, &private_key);
// Now you can transport the letter and validate it using the public key.
assert_eq!(true, letter.is_valid(&public_key).is_ok());
letter.content = "world hello";
assert_eq!(false, letter.is_valid(&public_key).is_ok());
或者您可以使用Edcert证书
// (let meta = ..., let expires = ...)
let (public_key, private_key) = ed25519::generate_keypair();
let mut cert = Certificate::generate_random(meta, expires);
cert.sign_with_master(&private_key);
let test_str = "hello world";
let mut letter = Letter::with_certificate(test_str, &cert);
assert_eq!(true, letter.is_valid(&public_key).is_ok());
letter.content = "world hello";
assert_eq!(false, letter.is_valid(&public_key).is_ok());
许可证
MIT
这意味着您可以在开源项目和/或商业项目中使用此代码而不会出现任何问题。请阅读许可证文件"LICENSE"以获取详细信息
依赖关系
~20MB
~124K SLoC