feat: v1.0.4, generate data key and save to db
This commit is contained in:
@@ -4,9 +4,9 @@ use rust_util::XResult;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::{json, Map, Value};
|
||||
|
||||
use crate::do_response;
|
||||
use crate::jose;
|
||||
use crate::serve_common::{self, byte_to_multi_view_map, get_master_key, MultipleViewValue, Result};
|
||||
use crate::serve_common::{self, byte_to_multi_view_map, MultipleViewValue, Result};
|
||||
use crate::{do_response, require_master_key};
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
struct DecryptRequest {
|
||||
@@ -22,16 +22,13 @@ async fn inner_decrypt(req: Request<Body>) -> XResult<(StatusCode, Value)> {
|
||||
let data: DecryptRequest = serde_json::from_reader(whole_body.reader())?;
|
||||
|
||||
log::debug!("To be decrypted value: {}", &data.encrypted_value);
|
||||
let key = match get_master_key() {
|
||||
None => return serve_common::error("status_not_ready"),
|
||||
Some(key) => key,
|
||||
};
|
||||
let key = require_master_key!();
|
||||
let decrypted_value = jose::deserialize_jwe_aes(&data.encrypted_value, &key.read());
|
||||
drop(key);
|
||||
let (data, header) = decrypted_value?;
|
||||
|
||||
if let Some(false) = header.exportable {
|
||||
return serve_common::error("data_not_exportable");
|
||||
return serve_common::client_error("data_not_exportable");
|
||||
}
|
||||
|
||||
let mut map = byte_to_multi_view_map(&data, true);
|
||||
@@ -58,10 +55,7 @@ async fn inner_encrypt(req: Request<Body>) -> XResult<(StatusCode, Value)> {
|
||||
let whole_body = hyper::body::aggregate(req).await?;
|
||||
let data: MultipleViewValue = serde_json::from_reader(whole_body.reader())?;
|
||||
let value = data.to_bytes()?;
|
||||
let key = match get_master_key() {
|
||||
None => return serve_common::error("status_not_ready"),
|
||||
Some(key) => key,
|
||||
};
|
||||
let key = require_master_key!();
|
||||
let encrypt_result = jose::serialize_jwe_aes(&value, &key.read());
|
||||
drop(key);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user