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

jsonwebkey-convert

Convert an RSA public key between Json Web Key and DER/PEM format

3 releases (breaking)

0.3.0 Jan 9, 2021
0.2.0 Jan 3, 2021
0.1.0 Jul 25, 2020

#624 in Authentication

Download history 3/week @ 2023-12-04 8/week @ 2023-12-11 24/week @ 2024-01-08 9/week @ 2024-01-15 44/week @ 2024-01-29 6/week @ 2024-02-12 13/week @ 2024-02-19 28/week @ 2024-02-26 32/week @ 2024-03-04

79 downloads per month

Apache-2.0

24KB
546 lines

jsonwebkey-convert

Convert an RSA public key between Json Web Key and DER/PEM format.

Convert PEM to 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(())
}

Convert JWK to 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

Handle Json Web Key without nightly rust compiler.

Load JSON Web Key Set

use jsonwebkey_convert::JsonWebKeySet;

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

Convert PEM to JWK

pem_support feature is required.

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);

Convert JWK to PEM

pem_support feature is required.

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

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

Dependencies

~1.3–5MB
~113K SLoC