コード例 #1
0
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);
    }
}
コード例 #2
0
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);
}