#rsa-key #pkcs #export #pem #format #generated #encode

不再维护 rsa-export

将 "rsa"crate 生成的密钥导出为 PKCS#1 或 PKCS#8 格式

5 个不稳定版本

0.3.3 2021年3月29日
0.3.2 2021年1月20日
0.2.1 2020年11月25日
0.1.2 2020年11月17日
0.1.0 2020年2月25日

#16 in #pem

Download history 193/week @ 2024-04-04 107/week @ 2024-04-11 98/week @ 2024-04-18 154/week @ 2024-04-25 130/week @ 2024-05-02 299/week @ 2024-05-09 300/week @ 2024-05-16 376/week @ 2024-05-23 273/week @ 2024-05-30 146/week @ 2024-06-06 158/week @ 2024-06-13 163/week @ 2024-06-20 100/week @ 2024-06-27 210/week @ 2024-07-04 117/week @ 2024-07-11 153/week @ 2024-07-18

每月下载量 606
用于 28 个 crate (2 直接)

Apache-2.0 OR MIT

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