moved listing of file measurements to pts_file_meas

This commit is contained in:
Andreas Steffen
2012-07-16 09:54:11 +02:00
parent d7a8333c54
commit 12ef9fb1b5
3 changed files with 31 additions and 9 deletions
@@ -193,9 +193,8 @@ bool imv_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list,
int file_count, file_id;
pts_meas_algorithms_t algo;
pts_file_meas_t *measurements;
char *platform_info, *filename;
chunk_t measurement;
enumerator_t *e, *e_hash;
char *platform_info;
enumerator_t *e_hash;
bool is_dir;
platform_info = pts->get_platform_info(pts);
@@ -238,12 +237,7 @@ bool imv_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list,
}
else
{
e = measurements->create_enumerator(measurements);
while (e->enumerate(e, &filename, &measurement))
{
DBG2(DBG_PTS, " %#B for '%s'", &measurement, filename);
}
e->destroy(e);
measurements->insert(measurements, pts_db, platform_info);
}
break;
}
+17
View File
@@ -107,6 +107,22 @@ METHOD(pts_file_meas_t, create_enumerator, enumerator_t*,
(void*)entry_filter, NULL, NULL);
}
METHOD(pts_file_meas_t, insert, bool,
private_pts_file_meas_t *this, pts_database_t *pts_db, char *product)
{
enumerator_t *enumerator;
entry_t *entry;
enumerator = this->list->create_enumerator(this->list);
while (enumerator->enumerate(enumerator, &entry))
{
DBG2(DBG_PTS, " %#B for '%s'", &entry->measurement, entry->filename);
}
enumerator->destroy(enumerator);
return TRUE;
}
METHOD(pts_file_meas_t, verify, bool,
private_pts_file_meas_t *this, enumerator_t *e_hash, bool is_dir)
{
@@ -174,6 +190,7 @@ pts_file_meas_t *pts_file_meas_create(u_int16_t request_id)
.get_file_count = _get_file_count,
.add = _add,
.create_enumerator = _create_enumerator,
.insert = _insert,
.verify = _verify,
.destroy = _destroy,
},
+11
View File
@@ -21,6 +21,8 @@
#ifndef PTS_FILE_MEAS_H_
#define PTS_FILE_MEAS_H_
#include "pts/pts_database.h"
#include <library.h>
typedef struct pts_file_meas_t pts_file_meas_t;
@@ -59,6 +61,15 @@ struct pts_file_meas_t {
*/
enumerator_t* (*create_enumerator)(pts_file_meas_t *this);
/**
* Insert PTS File Measurements into the database
*
* @param db PTS Measurement database
* @param product Software product (os, vpn client, etc.)
* @return TRUE if all measurements could be inserted
*/
bool (*insert)(pts_file_meas_t *this, pts_database_t *db, char* product);
/**
* Verify stored hashes against PTS File Measurements
*