代码之家  ›  专栏  ›  技术社区  ›  YungOne

如何将RSA私钥转换为pem

  •  0
  • YungOne  · 技术社区  · 3 年前

    我需要将使用RsaPrivateKey::new()生成的私钥转换为pem,但无法通过文档了解如何执行此操作

    use rsa::{PublicKey, RsaPrivateKey, RsaPublicKey, PaddingScheme, pkcs8::EncodePrivateKey};
    
    // create a private key
    let mut rng = rand::thread_rng();
    let bits = 2048;
    let private_key = RsaPrivateKey::new(&mut rng, bits).expect("Failed to generate key");
    // create a public key / address
    let public_key = RsaPublicKey::from(&private_key);
    

    创建pem时会返回一个错误,表示LineEnding未声明,但文档中就是这样做的:

    let priv_pem = RsaPrivateKey::to_pkcs8_pem(&private_key, line_ending: LineEnding::default);
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Bamontan    3 年前

    您需要从pkcs8导入LineEnding,或将其限定为来自该板条箱:

    use rsa::pkcs8::{LineEnding, EncodePrivateKey};
    
    let priv_pem = RsaPrivateKey::to_pkcs8_pem(&private_key, LineEnding::default);
    

    use rsa::pkcs8::{self, EncodePrivateKey};
    
    let priv_pem = RsaPrivateKey::to_pkcs8_pem(&private_key, pkcs8::LineEnding::default);