feat: add jost-test
This commit is contained in:
47
__crypto/jose-test/src/main.rs
Normal file
47
__crypto/jose-test/src/main.rs
Normal file
@@ -0,0 +1,47 @@
|
||||
use base64::Engine;
|
||||
use jose_jwk::jose_b64::serde::Bytes;
|
||||
use jose_jwk::Rsa;
|
||||
use rand::rngs::ThreadRng;
|
||||
use rsa::Pkcs1v15Encrypt;
|
||||
use serde_json::Value;
|
||||
|
||||
fn main() {
|
||||
let rsa_jwk = r##"{
|
||||
"kty":"RSA",
|
||||
"e":"AQAB",
|
||||
"n":"5xyyPQx8Z7AjVf8Mg4xTE6yN8efPHc0lCdO056R2lzaEQeFwVCbOxFCnmly2-HtE_F_Wd3-B0nxOmODIyC4T
|
||||
kLS3hXuflZb-OH73GwYDRmfcvWorACm0hv_a3p8YCuXvZ9aQUPRXwLn1jmAnKJiVRtObZTmmG5TsO-Q-U1DJjKhuP
|
||||
--4co9T434y3U9xGIBYAudQ8tn4QSuVInrO2svg4gb9PExLDBn_46yEiLn-q0TzvO-s2rZ0iCpfB0Gji3djQiF-op
|
||||
WUjLeGIMLC-gwAOKB4PjlsJBPlIg3pYpRuUEDERIy7kxZ8PIe4Nrfli_sRwMknm9HgQaigu3euYcjxXG9CALTs_vR
|
||||
a7lRdpEKQY1ysY_z0bjIk1v-erEyNflQimpDHXGxujVj1EUrYz2diu60acmLSEciThafweAupr_qyKXUutBsc_KPK
|
||||
33n8KBIPjl8X7bX2z-dXMKXo312vfPb6iO1ZcoFXG2nkFzwvFUKYFHSGjuZTQKgiaVEhlbq7N-80BlynnkHLYGcbn
|
||||
9MtrT8O2Fci1i2ByxyL6B3vB1D5J1VyZ7IBY5AD1GanK2uFmC9nAoFvjTQJt3k2TI_MiPHgb1fZkHu0r-yrf9W_Hr
|
||||
PrhBTp5wbepRSC6hs-yTykLJKSE5CD43KbjoW5GCqOkkQMnVjvSY4FpAdTj8Qt7kk"
|
||||
}"##;
|
||||
let rsa_jwk = rsa_jwk.replace(" ", "");
|
||||
let rsa_jwk = rsa_jwk.replace("\r", "");
|
||||
let rsa_jwk = rsa_jwk.replace("\n", "");
|
||||
let val: Value = serde_json::from_str(&rsa_jwk).unwrap();
|
||||
|
||||
let rsa = match val {
|
||||
Value::Object(rsa_pub_key) => {
|
||||
let e = rsa_pub_key.get("e").unwrap().as_str().unwrap();
|
||||
let n = rsa_pub_key.get("n").unwrap().as_str().unwrap();
|
||||
println!("{}", e);
|
||||
println!("{}", n);
|
||||
Rsa {
|
||||
n: Bytes::from(base64::engine::general_purpose::URL_SAFE_NO_PAD.decode(n).unwrap()),
|
||||
e: Bytes::from(base64::engine::general_purpose::URL_SAFE_NO_PAD.decode(e).unwrap()),
|
||||
prv: None,
|
||||
}
|
||||
}
|
||||
_ => panic!("Unknown value"),
|
||||
};
|
||||
|
||||
let rsa_public_key = rsa::RsaPublicKey::try_from(rsa).unwrap();
|
||||
println!("{:?}", rsa_public_key);
|
||||
|
||||
let mut r = ThreadRng::default();
|
||||
let enc = rsa_public_key.encrypt(&mut r, Pkcs1v15Encrypt, b"").unwrap();
|
||||
println!("{}", base64::engine::general_purpose::STANDARD.encode(&enc));
|
||||
}
|
||||
Reference in New Issue
Block a user