object oriented approach to pts functional components
This commit is contained in:
@@ -266,7 +266,7 @@ bool imv_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list,
|
||||
bool pcr_info_inclided, component_meas_error = FALSE;
|
||||
pts_attr_simple_comp_evid_flag_t flags;
|
||||
u_int32_t depth, comp_vendor_id, extended_pcr;
|
||||
u_int8_t family, measurement_type;
|
||||
u_int8_t measurement_type;
|
||||
pts_qualifier_t qualifier;
|
||||
pts_ita_funct_comp_name_t name;
|
||||
pts_meas_algorithms_t hash_algorithm;
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
|
||||
typedef struct private_imv_attestation_state_t private_imv_attestation_state_t;
|
||||
typedef struct file_meas_request_t file_meas_request_t;
|
||||
typedef struct comp_evid_request_t comp_evid_request_t;
|
||||
|
||||
/**
|
||||
* PTS File/Directory Measurement request entry
|
||||
@@ -32,15 +31,6 @@ struct file_meas_request_t {
|
||||
bool is_dir;
|
||||
};
|
||||
|
||||
/**
|
||||
* Functional Component Evidence Request entry
|
||||
*/
|
||||
struct comp_evid_request_t {
|
||||
u_int32_t vendor_id;
|
||||
pts_qualifier_t qualifier;
|
||||
pts_ita_funct_comp_name_t name;
|
||||
};
|
||||
|
||||
/**
|
||||
* Private data of an imv_attestation_state_t object.
|
||||
*/
|
||||
@@ -273,31 +263,23 @@ METHOD(imv_attestation_state_t, get_file_meas_request_count, int,
|
||||
METHOD(imv_attestation_state_t, add_comp_evid_request, void,
|
||||
private_imv_attestation_state_t *this, funct_comp_evid_req_entry_t *entry)
|
||||
{
|
||||
comp_evid_request_t *request;
|
||||
pts_comp_func_name_t *request;
|
||||
|
||||
request = malloc_thing(comp_evid_request_t);
|
||||
request->vendor_id = entry->vendor_id;
|
||||
request->qualifier = entry->qualifier;
|
||||
request->name = entry->name;
|
||||
request = entry->name->clone(entry->name);
|
||||
this->comp_evid_requests->insert_last(this->comp_evid_requests, request);
|
||||
}
|
||||
|
||||
METHOD(imv_attestation_state_t, check_off_comp_evid_request, bool,
|
||||
private_imv_attestation_state_t *this, u_int32_t vendor_id,
|
||||
pts_qualifier_t qualifier, pts_ita_funct_comp_name_t comp_name)
|
||||
private_imv_attestation_state_t *this, pts_comp_func_name_t *name)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
comp_evid_request_t *request;
|
||||
pts_comp_func_name_t *request;
|
||||
bool found = FALSE;
|
||||
|
||||
enumerator = this->comp_evid_requests->create_enumerator(this->comp_evid_requests);
|
||||
while (enumerator->enumerate(enumerator, &request))
|
||||
{
|
||||
if (request->vendor_id == vendor_id &&
|
||||
request->qualifier.kernel == qualifier.kernel &&
|
||||
request->qualifier.sub_component == qualifier.sub_component &&
|
||||
request->qualifier.type == qualifier.type &&
|
||||
request->name == comp_name)
|
||||
if (name->equals(name, request))
|
||||
{
|
||||
found = TRUE;
|
||||
this->comp_evid_requests->remove_at(this->comp_evid_requests, enumerator);
|
||||
|
||||
@@ -81,8 +81,8 @@ struct imv_attestation_state_t {
|
||||
* @param is_dir TRUE if directory
|
||||
* @return unique request ID
|
||||
*/
|
||||
u_int16_t (*add_file_meas_request)(imv_attestation_state_t *this, int file_id,
|
||||
bool is_dir);
|
||||
u_int16_t (*add_file_meas_request)(imv_attestation_state_t *this,
|
||||
int file_id, bool is_dir);
|
||||
|
||||
/**
|
||||
* Returns the number of pending file/directory measurement requests
|
||||
@@ -100,7 +100,7 @@ struct imv_attestation_state_t {
|
||||
* @return TRUE if request ID found, FALSE otherwise
|
||||
*/
|
||||
bool (*check_off_file_meas_request)(imv_attestation_state_t *this,
|
||||
u_int16_t id, int *file_id, bool *is_dir);
|
||||
u_int16_t id, int *file_id, bool *is_dir);
|
||||
|
||||
/**
|
||||
* Add an entry to the list of pending Function Component Evidences
|
||||
@@ -108,26 +108,23 @@ struct imv_attestation_state_t {
|
||||
* @param entry Functional Component Evidence Request
|
||||
*/
|
||||
void (*add_comp_evid_request)(imv_attestation_state_t *this,
|
||||
funct_comp_evid_req_entry_t *entry);
|
||||
funct_comp_evid_req_entry_t *entry);
|
||||
|
||||
/**
|
||||
* Returns the number of pending Function Component Evidences
|
||||
*
|
||||
* @return number of pending evidences
|
||||
* @return Number of pending evidences
|
||||
*/
|
||||
int (*get_comp_evid_request_count)(imv_attestation_state_t *this);
|
||||
|
||||
/**
|
||||
* Check for presence of Component Evidence Request and remove if exists
|
||||
*
|
||||
* @param vendor_id Functional Component Name Vendor ID
|
||||
* @param qualifier Qualifier of the requested Functional Component
|
||||
* @param comp_name Name of the requested Functional Component
|
||||
* @param name Name of the requested Functional Component
|
||||
* @return TRUE if component request found, FALSE otherwise
|
||||
*/
|
||||
bool (*check_off_comp_evid_request)(imv_attestation_state_t *this,
|
||||
u_int32_t vendor_id, pts_qualifier_t qualifier,
|
||||
pts_ita_funct_comp_name_t comp_name);
|
||||
pts_comp_func_name_t *name);
|
||||
|
||||
/**
|
||||
* Indicates if a file measurement error occurred
|
||||
|
||||
Reference in New Issue
Block a user