8个版本
0.1.7 | 2023年4月30日 |
---|---|
0.1.6 | 2023年4月15日 |
#2061 in 加密学
每月 31次下载
11KB
168 行
srsa
使用rsa crate创建和使用的RSA密钥对的简单后端。
这是一个即插即用的库,我计划将其作为我心中其他想法的后端。这也是我第一次进行任何密码学相关的工作,因此我所做的选择可能不是最好的。欢迎提交PR或issue,分享您的想法或改进意见。
用法
lib.rs
:
使用已经建立良好的rsa和pkcs8 crates提供一个简单的即插即用体验。
用法
保存密钥对
use srsa::Keys;
use anyhow::Result as AnyResult;
fn main() -> AnyResult<()> {
// The values passed in will be the file names of the private and public keys.
let keys = Keys::new("priv", "pub");
// Saves the key pairs to a folder in the cwd called keys and encrypts the private key with a
// password
keys.write_to_disk("password", "keys")?;
Ok(())
}
使用现有的密钥对
use srsa::Keys;
use anyhow::Result as AnyResult;
fn main() -> AnyResult<()> {
let keys = Keys::retrieve_keys("keys/test_priv", "1234", "keys/test_pub")?;
let ciphertext = keys.seal(b"hi")?;
let plaintext = keys.unseal(&ciphertext)?;
Ok(())
}
加密和解密的工作方式非常相似。
- 您获取执行任务所需的关键密钥。
- 您运行适当的函数。加密函数称为
seal
,解密函数称为unseal
。
依赖关系
~5MB
~104K SLoC