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 header_b64 = URL_SAFE_NO_PAD.encode(header_str.as_bytes());
let data_key: [u8; 32] = random(); let data_key: [u8; 32] = random();
let nonce: [u8; 12] = random(); let iv: [u8; 12] = random();
let mut encryptor = Aes256GcmStreamEncryptor::new(data_key, &nonce); let mut encryptor = Aes256GcmStreamEncryptor::new(data_key, &iv);
encryptor.init_adata(header_b64.as_bytes()); encryptor.init_adata(header_b64.as_bytes());
let mut e = encryptor.update(payload); let mut ciphertext = encryptor.update(payload);
let (f, t) = encryptor.finalize(); let (ciphertext_final, tag) = encryptor.finalize();
e.extend_from_slice(&f); 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(); Ok(format!(
jwe.push_str(&header_b64); "{}.{}.{}.{}.{}",
jwe.push_str(JWE_DOT); header_b64,
jwe.push_str(&URL_SAFE_NO_PAD.encode(&wrap_key)); URL_SAFE_NO_PAD.encode(&cek),
jwe.push_str(JWE_DOT); URL_SAFE_NO_PAD.encode(&iv),
jwe.push_str(&URL_SAFE_NO_PAD.encode(&nonce)); URL_SAFE_NO_PAD.encode(&ciphertext),
jwe.push_str(JWE_DOT); URL_SAFE_NO_PAD.encode(&tag)
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)
} }
fn deserialize_jwe_fn<F>(jwe: &str, key_unwrap_fn: F) -> XResult<(Vec<u8>, JweHeader2)> fn deserialize_jwe_fn<F>(jwe: &str, key_unwrap_fn: F) -> XResult<(Vec<u8>, JweHeader2)>