diff --git a/psw/ae/aesm_service/source/upse/u_certificate_provisioning.cpp b/psw/ae/aesm_service/source/upse/u_certificate_provisioning.cpp index e0690656b..8eeddac9a 100644 --- a/psw/ae/aesm_service/source/upse/u_certificate_provisioning.cpp +++ b/psw/ae/aesm_service/source/upse/u_certificate_provisioning.cpp @@ -700,15 +700,21 @@ ae_error_t pib_verify_signature(platform_info_blob_wrapper_t& piBlobWrapper) //BREAK_IF_TRUE((sizeof(publicKey) != sizeof(s_pib_pub_key_big_endian)), ae_err, AE_FAILURE); //BREAK_IF_TRUE((sizeof(signature) != sizeof(piBlobWrapper.platform_info_blob.signature)), ae_err, AE_FAILURE); + // convert the public key to little endian if(0!=memcpy_s(&publicKey, sizeof(publicKey), s_pib_pub_key_big_endian, sizeof(s_pib_pub_key_big_endian))){ ae_err = AE_FAILURE; break; } + SwapEndian_32B(((uint8_t*)&publicKey) + 0); + SwapEndian_32B(((uint8_t*)&publicKey) + 32); + // convert the signature to little endian if(0!=memcpy_s(&signature, sizeof(signature), &piBlobWrapper.platform_info_blob.signature, sizeof(piBlobWrapper.platform_info_blob.signature))){ ae_err = AE_FAILURE; break; } + SwapEndian_32B(((uint8_t*)&signature) + 0); + SwapEndian_32B(((uint8_t*)&signature) + 32); sgx_status = sgx_ecc256_open_context(&ecc_handle); BREAK_IF_TRUE((SGX_SUCCESS != sgx_status), ae_err, AE_FAILURE); diff --git a/sdk/trts/Makefile b/sdk/trts/Makefile index dfe886aec..0e23af10a 100644 --- a/sdk/trts/Makefile +++ b/sdk/trts/Makefile @@ -71,7 +71,7 @@ $(OBJS2): %.o: %.cpp $(CXX) -c $(TCXXFLAGS) $(CPPFLAGS) -fPIC $< -o $@ .PHONY: elf_parser -elf_parser: +elf_parser: $(OBJS) $(MAKE) -C linux .PHONY: clean