Skip to content
This repository was archived by the owner on May 9, 2022. It is now read-only.

Commit 4816cd8

Browse files
committed
feat(rtc_data_service::data_upload): add auth_enclave_id to DataUploadMessage
1 parent f151caf commit 4816cd8

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

rtc_data_service/src/data_upload/message.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use actix::{Handler, Message};
22
use rtc_types::{DataUploadError, DataUploadResponse, EcallError, UploadMetadata};
3+
use sgx_types::sgx_enclave_id_t;
34

45
use crate::data_enclave_actor::DataEnclaveActor;
56

@@ -11,11 +12,12 @@ pub struct DataUploadRequest {
1112
pub payload: Box<[u8]>,
1213
}
1314

14-
/// [`Message`]: Process a sealed [`DataUploadRequest`].
15+
/// [`Message`]: Process a [`DataUploadRequest`] sealed for [`auth_enclave_id`].
1516
/// Return a sealed [`DataUploadResponse`].
1617
///
1718
/// See: [`rtc_uenclave::enclaves::rtc_data::upload_data`]
1819
pub struct DataUploadMessage {
20+
pub auth_enclave_id: sgx_enclave_id_t,
1921
pub request: DataUploadRequest,
2022
}
2123

rtc_data_service/src/data_upload/service.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ use actix_web::{post, web};
66
use models::*;
77
use rtc_types::{DataUploadError, DataUploadResponse, EcallError};
88

9+
use crate::auth_enclave_actor::AuthEnclaveActor;
910
use crate::data_enclave_actor::DataEnclaveActor;
1011
use crate::data_upload::{DataUploadMessage, DataUploadRequest};
12+
use crate::enclave_messages::GetEnclaveId;
1113
use crate::merge_error::*;
1214

1315
/// Save uploaded data file using a [`DataUploadMessage`] for [`DataEnclaveActor`].
@@ -20,10 +22,19 @@ use crate::merge_error::*;
2022
#[post("/data/uploads")]
2123
pub async fn upload_file(
2224
req_body: web::Json<RequestBody>,
25+
auth_enclave: web::Data<Addr<AuthEnclaveActor>>,
2326
data_enclave: web::Data<Addr<DataEnclaveActor>>,
2427
) -> actix_web::Result<web::Json<ResponseBody>> {
28+
let auth_enclave_id = auth_enclave
29+
.send(GetEnclaveId)
30+
.await
31+
.map_err(ErrorInternalServerError)?;
32+
2533
let request: DataUploadRequest = req_body.0.try_into()?;
26-
let message = DataUploadMessage { request };
34+
let message = DataUploadMessage {
35+
auth_enclave_id,
36+
request,
37+
};
2738

2839
let result: Result<DataUploadResponse, MergedError<EcallError<DataUploadError>, MailboxError>> =
2940
data_enclave.send(message).await.merge_err();

0 commit comments

Comments
 (0)