#public-key #convert #convert-json #jsonwebtoken #rsa #web #jsonwebkey

jsonwebkey-convert

在Json Web Key和DER/PEM格式之间转换RSA公钥

3个版本 (破坏性更新)

0.3.0 2021年1月9日
0.2.0 2021年1月3日
0.1.0 2020年7月25日

认证类别中排名第629

Apache-2.0

24KB
546

jsonwebkey-convert

在Json Web Key和DER/PEM格式之间转换RSA公钥。

将PEM转换为JWK

use jsonwebkey_convert::*;
use jsonwebkey_convert::der::FromPem;

fn main() -> Result<(), Error> {
    let pem_data = include_str!("../testfiles/test1.pem");
    let rsa_jwk = RSAPublicKey::from_pem(pem_data)?;
    let jwk_byte_vec = serde_json::to_string(&rsa_jwk);
    Ok(())
}

将JWK转换为PEM

use jsonwebkey_convert::*;
use jsonwebkey_convert::der::ToPem;

fn main() -> Result<(), Error> {
    let jwk_data = include_str!("../testfiles/test1.json");
    let rsa_jwk: RSAPublicKey = jwk_data.parse()?;
    let pem_data = rsa_jwk.to_pem()?;
    Ok(())
}

lib.rs:

jsonwebkey-convert

在不使用nightly rust编译器的情况下处理Json Web Key。

加载JSON Web Key集

use jsonwebkey_convert::JsonWebKeySet;

let jwks: JsonWebKeySet = jwks_str.parse()?;

将PEM转换为JWK

需要pem_support特性。

use jsonwebkey_convert::*;
use jsonwebkey_convert::der::FromPem;

let rsa_jwk = RSAPublicKey::from_pem(pem_data)?;
let jwk_byte_vec = serde_json::to_string(&rsa_jwk);

将JWK转换为PEM

需要pem_support特性。

use jsonwebkey_convert::*;
use jsonwebkey_convert::der::ToPem;

let rsa_jwk: RSAPublicKey = jwk_data.parse()?;
let pem_data = rsa_jwk.to_pem()?;

依赖项

~1.3–5MB
~113K SLoC