Skip to content

Commit

Permalink
refactor serialize collateral
Browse files Browse the repository at this point in the history
Signed-off-by: Bruno Vavala <bruno.vavala@intel.com>
  • Loading branch information
bvavala authored and cmickeyb committed Dec 17, 2024
1 parent 4fe3eda commit 33e6295
Showing 1 changed file with 25 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,37 @@ uint8_t* serialize_collateral(sgx_ql_qve_collateral_t* c)
uint32_t collateral_size = sizeof(sgx_ql_qve_collateral_t) + c->pck_crl_issuer_chain_size + c->root_ca_crl_size + c->pck_crl_size + c->tcb_info_issuer_chain_size + c->tcb_info_size + c->qe_identity_issuer_chain_size + c->qe_identity_size;
fprintf(stderr, "calculated collateral size: %d\n", collateral_size);

uint8_t* p = (uint8_t*)malloc(collateral_size);
uint8_t* porig = (uint8_t*)malloc(collateral_size);
uint8_t* p = porig;
if(p == NULL) return NULL;
memset(p, '\0', collateral_size);

// NOTICE / WARNING: here we copy the entire data structure with "meaningless" pointers
// pointers will have to be adjusted at deserialization time
memcpy(p, (uint8_t*)c, sizeof(sgx_ql_qve_collateral_t));
memcpy(p+sizeof(sgx_ql_qve_collateral_t), c->pck_crl_issuer_chain, c->pck_crl_issuer_chain_size);
memcpy(p+sizeof(sgx_ql_qve_collateral_t)+c->pck_crl_issuer_chain_size, c->root_ca_crl, c->root_ca_crl_size);
memcpy(p+sizeof(sgx_ql_qve_collateral_t)+c->pck_crl_issuer_chain_size+c->root_ca_crl_size, c->pck_crl, c->pck_crl_size);
memcpy(p+sizeof(sgx_ql_qve_collateral_t)+c->pck_crl_issuer_chain_size+c->root_ca_crl_size+c->pck_crl_size, c->tcb_info_issuer_chain, c->tcb_info_issuer_chain_size);
memcpy(p+sizeof(sgx_ql_qve_collateral_t)+c->pck_crl_issuer_chain_size+c->root_ca_crl_size+c->pck_crl_size+c->tcb_info_issuer_chain_size, c->tcb_info, c->tcb_info_size);
memcpy(p+sizeof(sgx_ql_qve_collateral_t)+c->pck_crl_issuer_chain_size+c->root_ca_crl_size+c->pck_crl_size+c->tcb_info_issuer_chain_size+c->tcb_info_size, c->qe_identity_issuer_chain, c->qe_identity_issuer_chain_size);
memcpy(p+sizeof(sgx_ql_qve_collateral_t)+c->pck_crl_issuer_chain_size+c->root_ca_crl_size+c->pck_crl_size+c->tcb_info_issuer_chain_size+c->tcb_info_size+c->qe_identity_issuer_chain_size, c->qe_identity, c->qe_identity_size);

return p;
p += sizeof(sgx_ql_qve_collateral_t);

memcpy(p, c->pck_crl_issuer_chain, c->pck_crl_issuer_chain_size);
p += c->pck_crl_issuer_chain_size;

memcpy(p, c->root_ca_crl, c->root_ca_crl_size);
p += c->root_ca_crl_size;

memcpy(p, c->pck_crl, c->pck_crl_size);
p += c->pck_crl_size;

memcpy(p, c->tcb_info_issuer_chain, c->tcb_info_issuer_chain_size);
p += c->tcb_info_issuer_chain_size;

memcpy(p, c->tcb_info, c->tcb_info_size);
p += c->tcb_info_size;

memcpy(p, c->qe_identity_issuer_chain, c->qe_identity_issuer_chain_size);
p += c->qe_identity_issuer_chain_size;

memcpy(p, c->qe_identity, c->qe_identity_size);

return porig;
}


Expand Down

0 comments on commit 33e6295

Please sign in to comment.