3 #include "ypc/core/ref.h"
4 #include "ypc/stbox/ebyte.h"
5 #include "ypc/stbox/stx_status.h"
6 #include "ypc/stbox/tsgx/channel/dh_cdef.h"
7 #include "ypc/stbox/usgx/sgx_module.h"
8 #include "ypc/version.h"
11 #include <sgx_error.h>
13 using stx_status = stbox::stx_status;
23 uint32_t get_ecc_sealed_private_key_size();
24 uint32_t generate_ecc_key_pair(
bref &public_key,
bref &sealed_private_key);
26 uint32_t sign_message(
const uint8_t *sealed_private_key, uint32_t sealed_size,
27 const uint8_t *data, uint32_t data_size,
bref &sig);
29 uint32_t verify_signature(
const uint8_t *data, uint32_t data_size,
30 const uint8_t *sig, uint32_t sig_size,
31 const uint8_t *public_key, uint32_t pkey_size);
33 uint32_t encrypt_message(
const uint8_t *public_key, uint32_t pkey_size,
34 const uint8_t *data, uint32_t data_size,
37 uint32_t decrypt_message(
const uint8_t *sealed_private_key,
38 uint32_t sealed_size,
const uint8_t *cipher,
39 uint32_t cipher_size,
bref &data);
41 uint32_t session_request(sgx_dh_msg1_t *dh_msg1, uint32_t *session_id);
43 uint32_t exchange_report(sgx_dh_msg2_t *dh_msg2, sgx_dh_msg3_t *dh_msg3,
45 uint32_t generate_response(secure_message_t *req_message,
46 size_t req_message_size,
size_t max_payload_size,
47 secure_message_t *resp_message,
48 size_t resp_message_size, uint32_t session_id);
49 uint32_t end_session(uint32_t session_id);
51 uint32_t forward_private_key(
const uint8_t *encrypted_private_key,
52 uint32_t cipher_size,
const uint8_t *epublic_key,
53 uint32_t epkey_size,
const uint8_t *ehash,
54 uint32_t ehash_size,
const uint8_t *sig,
62 uint32_t set_access_control_policy(
const ypc::bytes &policy);
64 uint32_t create_report_for_pkey(
const sgx_target_info_t *p_qe3_target,
65 const stbox::bytes &pkey,
66 sgx_report_t *p_report);