123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include "sgx_tseal.h"
- #ifndef UINT32_MAX
- #define UINT32_MAX 0xffffffffU
- #endif
- uint32_t sgx_calc_sealed_data_size(const uint32_t add_mac_txt_size, const uint32_t txt_encrypt_size)
- {
- if(add_mac_txt_size > UINT32_MAX - txt_encrypt_size)
- return UINT32_MAX;
- uint32_t payload_size = add_mac_txt_size + txt_encrypt_size;
- if(payload_size > UINT32_MAX - sizeof(sgx_sealed_data_t))
- return UINT32_MAX;
- return (uint32_t)(sizeof(sgx_sealed_data_t) + payload_size);
- }
- uint32_t sgx_get_add_mac_txt_len(const sgx_sealed_data_t* p_sealed_data)
- {
- if(p_sealed_data == NULL)
- return UINT32_MAX;
- uint32_t data_size = p_sealed_data->aes_data.payload_size - p_sealed_data->plain_text_offset;
- if (data_size > p_sealed_data->aes_data.payload_size)
- return UINT32_MAX;
- return data_size;
- }
- uint32_t sgx_get_encrypt_txt_len(const sgx_sealed_data_t* p_sealed_data)
- {
- return ((p_sealed_data == NULL) ? UINT32_MAX : p_sealed_data->plain_text_offset);
- }
|