5 个不稳定版本
0.3.3 | 2021年3月29日 |
---|---|
0.3.2 | 2021年1月20日 |
0.2.1 |
|
0.1.2 | 2020年11月17日 |
0.1.0 |
|
#16 in #pem
每月下载量 606
用于 28 个 crate (2 直接)
17KB
271 行
已弃用:从版本 0.4 开始,rsa
crate 支持原生导出密钥。如果可能,请使用此功能而不是 rsa_export
!
rsa_export
允许您将使用 rsa crate 生成的 RSA 密钥以 PKCS#1 或 PKCS#8 编码导出
参考:https://tools.ietf.org/html/rfc3447#appendix-A.1
注意:不支持多素数密钥
还可以通过启用功能 pem
将密钥导出为 PEM 格式
示例
use rsa::RSAPrivateKey;
use rand::rngs::OsRng;
use rsa_export::Encode;
let mut rng = OsRng;
let private_key = RSAPrivateKey::new(&mut rng, 2048).unwrap();
let public_key = private_key.to_public_key();
let pkcs1_encoded_private = private_key.as_pkcs1().unwrap();
let pkcs1_encoded_public = public_key.as_pkcs1().unwrap();
let pkcs8_encoded_private = private_key.as_pkcs8().unwrap();
let pkcs8_encoded_public = public_key.as_pkcs8().unwrap();
将 PKCS#1 或 PKCS#8 编码的密钥编码为 PEM 格式(已启用 pem
功能)
use rsa::RSAPrivateKey;
use rand::rngs::OsRng;
use rsa_export::PemEncode;
let mut rng = OsRng;
let private_key = RSAPrivateKey::new(&mut rng, 2048).unwrap();
let public_key = private_key.to_public_key();
let pkcs1_encoded_private_pem = private_key.as_pkcs1_pem().unwrap();
let pkcs1_encoded_public_pem = public_key.as_pkcs1_pem().unwrap();
let pkcs8_encoded_private_pem = private_key.as_pkcs8_pem().unwrap();
let pkcs8_encoded_public_pem = public_key.as_pkcs8_pem().unwrap();
依赖项
~9MB
~168K SLoC