#ed25519 #signature #edcert #security

edcert-letter

此包提供了对Edcert的抽象。您可以使用Letter类型使用Edcert证书对内容进行签名和验证。

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次下载

MIT许可协议

11KB
135

Build Status

大家好,欢迎来到我的crate "edcert-letter"的git页面。

Edcert是一个简单的数据认证和授权库。edcert-letter提供了一个Letter类型,可用于简单的内容验证。

Edcert是如何工作的

  1. 您创建一个主密钥对。这将用于签名最高证书。
  2. 您创建一个根证书。用主密钥签名它。
  3. 现在您可以创建其他证书并使用证书相互签名。
  4. 通过网络以json编码格式传输您的证书。
  5. 使用".sign"和".verify"方法使用证书签名和验证数据。

该设计使用"超级安全、超级快速"的椭圆曲线Ed25519,您可以在此了解更多信息

对于密码学,它使用基于NaClsodiumoxide库,这是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