feat: update jose-test
This commit is contained in:
@@ -163,27 +163,23 @@ where
|
||||
let header_b64 = URL_SAFE_NO_PAD.encode(header_str.as_bytes());
|
||||
|
||||
let data_key: [u8; 32] = random();
|
||||
let nonce: [u8; 12] = random();
|
||||
let mut encryptor = Aes256GcmStreamEncryptor::new(data_key, &nonce);
|
||||
let iv: [u8; 12] = random();
|
||||
let mut encryptor = Aes256GcmStreamEncryptor::new(data_key, &iv);
|
||||
encryptor.init_adata(header_b64.as_bytes());
|
||||
let mut e = encryptor.update(payload);
|
||||
let (f, t) = encryptor.finalize();
|
||||
e.extend_from_slice(&f);
|
||||
let mut ciphertext = encryptor.update(payload);
|
||||
let (ciphertext_final, tag) = encryptor.finalize();
|
||||
ciphertext.extend_from_slice(&ciphertext_final);
|
||||
|
||||
let wrap_key = key_wrap_fn(&data_key)?;
|
||||
let cek = key_wrap_fn(&data_key)?;
|
||||
|
||||
let mut jwe = String::new();
|
||||
jwe.push_str(&header_b64);
|
||||
jwe.push_str(JWE_DOT);
|
||||
jwe.push_str(&URL_SAFE_NO_PAD.encode(&wrap_key));
|
||||
jwe.push_str(JWE_DOT);
|
||||
jwe.push_str(&URL_SAFE_NO_PAD.encode(&nonce));
|
||||
jwe.push_str(JWE_DOT);
|
||||
jwe.push_str(&URL_SAFE_NO_PAD.encode(&e));
|
||||
jwe.push_str(JWE_DOT);
|
||||
jwe.push_str(&URL_SAFE_NO_PAD.encode(&t));
|
||||
|
||||
Ok(jwe)
|
||||
Ok(format!(
|
||||
"{}.{}.{}.{}.{}",
|
||||
header_b64,
|
||||
URL_SAFE_NO_PAD.encode(&cek),
|
||||
URL_SAFE_NO_PAD.encode(&iv),
|
||||
URL_SAFE_NO_PAD.encode(&ciphertext),
|
||||
URL_SAFE_NO_PAD.encode(&tag)
|
||||
))
|
||||
}
|
||||
|
||||
fn deserialize_jwe_fn<F>(jwe: &str, key_unwrap_fn: F) -> XResult<(Vec<u8>, JweHeader2)>
|
||||
|
||||
Reference in New Issue
Block a user