2 #include "ypc/common/crypto_prefix.h"
3 #include "ypc/core_t/analyzer/interface/keymgr_interface.h"
4 #include "ypc/core_t/analyzer/internal/results/forward_result.h"
5 #include "ypc/corecommon/allowance.h"
6 #include "ypc/stbox/ebyte.h"
7 #include "ypc/stbox/stx_status.h"
14 uint32_t set_forward_target_info(
const ntt::param_t ¶m) {
15 return stbox::stx_status::success;
19 template <
typename Crypto>
29 uint32_t set_forward_target_info(
const ntt::param_t ¶m) {
30 auto param_data = param.get<ntt::param_data>();
32 stbox::bytes pkey4v = param.get<ntt::pkey>();
33 stbox::bytes private_key;
34 stbox::bytes dian_pkey;
35 auto ret = keymgr_interface_t::request_private_key_for_public_key(
36 pkey4v, private_key, dian_pkey);
38 LOG(ERROR) <<
"request_private_key failed: " << stbox::status_string(ret);
43 auto forward_info = param.get<ntt::forward>();
45 auto to_check_data = param_data + enclave_hash_var::m_enclave_hash +
46 dian_pkey + forward_info.get<ntt::enclave_hash>() +
47 forward_info.get<ntt::pkey>();
48 auto allow = forward_info.get<ntt::encrypted_sig>();
51 LOG(WARNING) <<
"check_allowance:" << allow
52 <<
" failed: " << stbox::status_string(ret) <<
", ignore it";
53 return stbox::stx_status::forward_allowance_invalid;
56 forward_result_t::m_target_enclave_hash =
57 forward_info.get<ntt::enclave_hash>();
58 forward_result_t::m_target_dian_pkey = forward_info.get<ntt::pkey>();
60 return stbox::stx_status::success;