moved listing of file measurements to pts_file_meas
This commit is contained in:
@@ -193,9 +193,8 @@ bool imv_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list,
|
|||||||
int file_count, file_id;
|
int file_count, file_id;
|
||||||
pts_meas_algorithms_t algo;
|
pts_meas_algorithms_t algo;
|
||||||
pts_file_meas_t *measurements;
|
pts_file_meas_t *measurements;
|
||||||
char *platform_info, *filename;
|
char *platform_info;
|
||||||
chunk_t measurement;
|
enumerator_t *e_hash;
|
||||||
enumerator_t *e, *e_hash;
|
|
||||||
bool is_dir;
|
bool is_dir;
|
||||||
|
|
||||||
platform_info = pts->get_platform_info(pts);
|
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
|
else
|
||||||
{
|
{
|
||||||
e = measurements->create_enumerator(measurements);
|
measurements->insert(measurements, pts_db, platform_info);
|
||||||
while (e->enumerate(e, &filename, &measurement))
|
|
||||||
{
|
|
||||||
DBG2(DBG_PTS, " %#B for '%s'", &measurement, filename);
|
|
||||||
}
|
|
||||||
e->destroy(e);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,6 +107,22 @@ METHOD(pts_file_meas_t, create_enumerator, enumerator_t*,
|
|||||||
(void*)entry_filter, NULL, NULL);
|
(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,
|
METHOD(pts_file_meas_t, verify, bool,
|
||||||
private_pts_file_meas_t *this, enumerator_t *e_hash, bool is_dir)
|
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,
|
.get_file_count = _get_file_count,
|
||||||
.add = _add,
|
.add = _add,
|
||||||
.create_enumerator = _create_enumerator,
|
.create_enumerator = _create_enumerator,
|
||||||
|
.insert = _insert,
|
||||||
.verify = _verify,
|
.verify = _verify,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
#ifndef PTS_FILE_MEAS_H_
|
#ifndef PTS_FILE_MEAS_H_
|
||||||
#define PTS_FILE_MEAS_H_
|
#define PTS_FILE_MEAS_H_
|
||||||
|
|
||||||
|
#include "pts/pts_database.h"
|
||||||
|
|
||||||
#include <library.h>
|
#include <library.h>
|
||||||
|
|
||||||
typedef struct pts_file_meas_t pts_file_meas_t;
|
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);
|
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
|
* Verify stored hashes against PTS File Measurements
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user