build PA-TNC message only if there are PA-TNC attributes to send

This commit is contained in:
Andreas Steffen
2011-12-18 17:55:20 +01:00
parent a98262ff6e
commit 458c52d29d
3 changed files with 43 additions and 20 deletions
@@ -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;
}