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

Commit f26b1b6

Browse files
committed
WIP: flesh out save_access_key
1 parent 202e388 commit f26b1b6

File tree

1 file changed

+27
-7
lines changed

1 file changed

+27
-7
lines changed

rtc_auth_enclave/src/ecalls/save_access_key.rs

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
//! ECALL definition: [`save_access_key`]
22
3-
use std::dbg;
3+
use std::{dbg, format};
4+
5+
use sgx_types::sgx_enclave_id_t;
46

57
use rtc_types::enclave_messages::ng_set_access_key;
68
use rtc_types::enclave_messages::set_access_key;
@@ -22,12 +24,30 @@ pub extern "C" fn save_access_key(
2224
fn save_access_key_impl(
2325
encrypted_request: set_access_key::EncryptedRequest,
2426
) -> set_access_key::EncryptedResponse {
25-
dbg!(
26-
encrypted_request.tag,
27-
encrypted_request.ciphertext,
28-
encrypted_request.aad,
29-
encrypted_request.nonce,
30-
);
27+
// FIXME: Get sending enclave ID via AAD?
28+
let dummy_enclave_id = sgx_enclave_id_t::default();
29+
30+
let other_enclave_id = dummy_enclave_id;
31+
32+
let sessions: &crate::DhSessions<_, _> = crate::dh_sessions();
33+
let channel_mutex = sessions.get_active(other_enclave_id).expect(&format!(
34+
"save_access_key_impl: no active DH session for sending enclave {:?}",
35+
other_enclave_id,
36+
));
37+
let channel = channel_mutex
38+
.lock()
39+
.expect("save_access_key_impl: protected channel mutex poisoned");
40+
41+
let request_bytes = channel
42+
.decrypt_message(encrypted_request)
43+
.expect("TODO: return Result<>");
44+
dbg!(request_bytes);
45+
// TODO: deserialize,
46+
47+
let response = set_access_key::Response { success: false };
48+
dbg!(response);
49+
// TODO: serialize
50+
3151
set_access_key::EncryptedResponse {
3252
tag: Default::default(),
3353
ciphertext: Default::default(),

0 commit comments

Comments
 (0)