feat: update jose-test

This commit is contained in:
2024-11-14 00:23:44 +08:00
parent 4f048b3981
commit 2ff99a832d

View File

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