void queryResponse_free(PROVISIONING_QUERY_RESPONSE* query_resp) { size_t i; if (query_resp != NULL) { if (query_resp->response_arr_type == QUERY_TYPE_INDIVIDUAL_ENROLLMENT) { if (query_resp->response_arr.ie != NULL) { for (i = 0; i < query_resp->response_arr_size; i++) { individualEnrollment_destroy(query_resp->response_arr.ie[i]); } free(query_resp->response_arr.ie); } } else if (query_resp->response_arr_type == QUERY_TYPE_ENROLLMENT_GROUP) { if (query_resp->response_arr.eg != NULL) { for (i = 0; i < query_resp->response_arr_size; i++) { enrollmentGroup_destroy(query_resp->response_arr.eg[i]); } free(query_resp->response_arr.eg); } } else if (query_resp->response_arr_type == QUERY_TYPE_DEVICE_REGISTRATION_STATE) { if (query_resp->response_arr.drs != NULL) { for (i = 0; i < query_resp->response_arr_size; i++) { deviceRegistrationState_destroy(query_resp->response_arr.drs[i]); } free(query_resp->response_arr.drs); } } free(query_resp); } }
static void create_tpm_enrollment_device() { INDIVIDUAL_ENROLLMENT_HANDLE indiv_enrollment = NULL; PROVISIONING_SERVICE_CLIENT_HANDLE prov_sc_handle = prov_sc_create_from_connection_string(g_prov_conn_string); ASSERT_IS_NOT_NULL(prov_sc_handle, "Failure creating provisioning service client"); prov_sc_set_trace(prov_sc_handle, TRACING_STATUS_ON); PROV_AUTH_HANDLE auth_handle = prov_auth_create(); ASSERT_IS_NOT_NULL(auth_handle, "Failure creating auth client"); char* registration_id = prov_auth_get_registration_id(auth_handle); ASSERT_IS_NOT_NULL(registration_id, "Failure prov_auth_get_common_name"); if (prov_sc_get_individual_enrollment(prov_sc_handle, registration_id, &indiv_enrollment) != 0) { BUFFER_HANDLE ek_handle = prov_auth_get_endorsement_key(auth_handle); ASSERT_IS_NOT_NULL(ek_handle, "Failure prov_auth_get_endorsement_key"); STRING_HANDLE ek_value = Base64_Encode(ek_handle); ASSERT_IS_NOT_NULL(ek_value, "Failure Base64_Encode Endorsement key"); ATTESTATION_MECHANISM_HANDLE attest_handle = attestationMechanism_createWithTpm(STRING_c_str(ek_value), NULL); ASSERT_IS_NOT_NULL(attest_handle, "Failure attestationMechanism_createWithTpm"); indiv_enrollment = individualEnrollment_create(registration_id, attest_handle); ASSERT_IS_NOT_NULL(indiv_enrollment, "Failure hsm_client_riot_get_certificate "); BUFFER_delete(ek_handle); STRING_delete(ek_value); } free(registration_id); individualEnrollment_destroy(indiv_enrollment); prov_auth_destroy(auth_handle); prov_sc_destroy(prov_sc_handle); }