wait for the finalization of the Functional Component measurements

This commit is contained in:
Andreas Steffen 2012-07-13 10:06:43 +02:00
parent a845e4ebc5
commit dea7d74557
3 changed files with 19 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2011 Sansar Choinyambuu
* Copyright (C) 2011-2012 Sansar Choinyambuu, Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
@ -290,8 +290,11 @@ bool imv_attestation_build(linked_list_t *attr_list,
break;
}
case IMV_ATTESTATION_STATE_EVID_FINAL:
attestation_state->set_handshake_state(attestation_state,
if (attestation_state->components_finalized(attestation_state))
{
attestation_state->set_handshake_state(attestation_state,
IMV_ATTESTATION_STATE_END);
}
break;
case IMV_ATTESTATION_STATE_END:
break;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2011 Sansar Choinyambuu
* Copyright (C) 2011-2012 Sansar Choinyambuu, Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
@ -360,6 +360,12 @@ METHOD(imv_attestation_state_t, finalize_components, void,
}
}
METHOD(imv_attestation_state_t, components_finalized, bool,
private_imv_attestation_state_t *this)
{
return this->components->get_count(this->components) == 0;
}
/**
* Described in header.
*/
@ -392,6 +398,7 @@ imv_state_t *imv_attestation_state_create(TNC_ConnectionID connection_id)
.add_component = _add_component,
.get_component = _get_component,
.finalize_components = _finalize_components,
.components_finalized = _components_finalized,
.get_measurement_error = _get_measurement_error,
.set_measurement_error = _set_measurement_error,
},

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2011 Sansar Choinyambuu
* Copyright (C) 2011-2012 Sansar Choinyambuu, Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
@ -126,6 +126,11 @@ struct imv_attestation_state_t {
*/
void (*finalize_components)(imv_attestation_state_t *this);
/**
* Have the Functional Component measurements been finalized?
*/
bool (*components_finalized)(imv_attestation_state_t *this);
/**
* Indicates if a file measurement error occurred
*