feat: v1.0.1, update datakey

This commit is contained in:
2024-11-15 00:24:36 +08:00
parent 9d0e7548e6
commit 82b38a2cf1
6 changed files with 44 additions and 23 deletions

View File

@@ -1,8 +1,8 @@
use hyper::{Body, Request, Response, StatusCode};
use hyper::body::Buf;
use hyper::{Body, Request, Response, StatusCode};
use rust_util::{debugging, XResult};
use serde::{Deserialize, Serialize};
use serde_json::{json, Value};
use serde_json::{json, Map, Value};
use crate::do_response;
use crate::jose;
@@ -29,8 +29,20 @@ async fn inner_decrypt(req: Request<Body>) -> XResult<(StatusCode, Value)> {
let decrypted_value = jose::deserialize_jwe_aes(&data.encrypted_value, &key.read());
drop(key);
decrypted_value.map(|v| {
let map = byte_to_multi_view_map(&v.0, true);
decrypted_value.map(|(data, header)| {
let mut map = byte_to_multi_view_map(&data, true);
let mut header_map = Map::new();
header_map.insert("enc".to_string(), Value::String(header.enc.clone()));
header_map.insert("alg".to_string(), Value::String(header.alg.clone()));
if let Some(version) = &header.version {
header_map.insert("version".to_string(), Value::String(version.to_string()));
}
if let Some(data_type) = &header.data_type {
header_map.insert("data_type".to_string(), Value::String(data_type.to_string()));
}
if !header_map.is_empty() {
map.insert("header".to_string(), Value::Object(header_map));
}
(StatusCode::OK, Value::Object(map))
})
}