build PA-TNC message only if there are PA-TNC attributes to send
This commit is contained in:
@@ -30,7 +30,7 @@
|
||||
|
||||
#include <debug.h>
|
||||
|
||||
bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
bool imv_attestation_build(linked_list_t *attr_list,
|
||||
imv_attestation_state_t *attestation_state,
|
||||
pts_meas_algorithms_t supported_algorithms,
|
||||
pts_dh_group_t supported_dh_groups,
|
||||
@@ -90,12 +90,12 @@ bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
flags = pts->get_proto_caps(pts);
|
||||
attr = tcg_pts_attr_proto_caps_create(flags, TRUE);
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
|
||||
/* Send Measurement Algorithms attribute */
|
||||
attr = tcg_pts_attr_meas_algo_create(supported_algorithms, FALSE);
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
|
||||
attestation_state->set_handshake_state(attestation_state,
|
||||
IMV_ATTESTATION_STATE_NONCE_REQ);
|
||||
@@ -111,7 +111,7 @@ bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
attr = tcg_pts_attr_dh_nonce_params_req_create(min_nonce_len,
|
||||
supported_dh_groups);
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
|
||||
attestation_state->set_handshake_state(attestation_state,
|
||||
IMV_ATTESTATION_STATE_TPM_INIT);
|
||||
@@ -130,18 +130,18 @@ bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
attr = tcg_pts_attr_dh_nonce_finish_create(selected_algorithm,
|
||||
initiator_value, initiator_nonce);
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
}
|
||||
|
||||
/* Send Get TPM Version attribute */
|
||||
attr = tcg_pts_attr_get_tpm_version_info_create();
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
|
||||
/* Send Get AIK attribute */
|
||||
attr = tcg_pts_attr_get_aik_create();
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
|
||||
attestation_state->set_handshake_state(attestation_state,
|
||||
IMV_ATTESTATION_STATE_MEAS);
|
||||
@@ -187,7 +187,7 @@ bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
attr = tcg_pts_attr_req_file_meta_create(is_dir, delimiter,
|
||||
pathname);
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
}
|
||||
enumerator->destroy(enumerator);
|
||||
|
||||
@@ -208,7 +208,7 @@ bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
attr = tcg_pts_attr_req_file_meas_create(is_dir, request_id,
|
||||
delimiter, pathname);
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
}
|
||||
enumerator->destroy(enumerator);
|
||||
break;
|
||||
@@ -275,12 +275,12 @@ bool imv_attestation_build(pa_tnc_msg_t *msg,
|
||||
if (attr)
|
||||
{
|
||||
/* Send Request Functional Component Evidence attribute */
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
|
||||
/* Send Generate Attestation Evidence attribute */
|
||||
attr = tcg_pts_attr_gen_attest_evid_create();
|
||||
attr->set_noskip_flag(attr, TRUE);
|
||||
msg->add_attribute(msg, attr);
|
||||
attr_list->insert_last(attr_list, attr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user