return this->attributes->create_enumerator(this->attributes);
}
+METHOD(pa_tnc_msg_t, get_attribute_count, int,
+ private_pa_tnc_msg_t *this)
+{
+ return this->attributes->get_count(this->attributes);
+}
+
METHOD(pa_tnc_msg_t, create_error_enumerator, enumerator_t*,
private_pa_tnc_msg_t *this)
{
.build = _build,
.process = _process,
.create_attribute_enumerator = _create_attribute_enumerator,
+ .get_attribute_count = _get_attribute_count,
.create_error_enumerator = _create_error_enumerator,
.destroy = _destroy,
},
*/
enumerator_t* (*create_attribute_enumerator)(pa_tnc_msg_t *this);
+ /**
+ * Get Count of the PA-TNC attributes
+ *
+ * @return return attributes count
+ */
+ int (*get_attribute_count)(pa_tnc_msg_t *this);
+
/**
* Enumerates over all parsing errors
*
msg = pa_tnc_msg_create();
if (imv_attestation_build(msg, attestation_state, supported_algorithms,
- supported_dh_groups, pts_db))
+ supported_dh_groups, pts_db))
{
- msg->build(msg);
- result = imv_attestation->send_message(imv_attestation, connection_id,
- msg->get_encoding(msg));
+ if (!msg->get_attribute_count(msg))
+ {
+ result = TNC_RESULT_SUCCESS;
+ }
+ else
+ {
+ msg->build(msg);
+ result = imv_attestation->send_message(imv_attestation,
+ connection_id, msg->get_encoding(msg));
+ }
}
else
{
{
break;
}
- DBG2(DBG_IMV, "evidence request by");
while (enumerator->enumerate(enumerator, &vid, &name,
&qualifier, &depth))
{
comp_name = pts_comp_func_name_create(vid, name, qualifier);
+ DBG2(DBG_IMV, "evidence request by");
comp_name->log(comp_name, " ");
comp = pts_components->create(pts_components, comp_name,