swid-gen: Share SWID generator between sw-collector, imc-swima and imc-swid
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2015 Andreas Steffen
|
||||
* Copyright (C) 2013-2017 Andreas Steffen
|
||||
* HSR Hochschule fuer Technik Rapperswil
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
@@ -30,8 +30,6 @@
|
||||
#include <pen/pen.h>
|
||||
#include <utils/debug.h>
|
||||
|
||||
#define SWID_GENERATOR "/usr/local/bin/swid_generator"
|
||||
|
||||
/* IMC definitions */
|
||||
|
||||
static const char imc_name[] = "SWID";
|
||||
@@ -165,7 +163,7 @@ static bool add_swid_inventory(imc_state_t *state, imc_msg_t *msg,
|
||||
pa_tnc_attr_t *attr, *attr_error;
|
||||
imc_swid_state_t *swid_state;
|
||||
swid_inventory_t *swid_inventory;
|
||||
char *swid_directory, *swid_generator;
|
||||
char *swid_directory;
|
||||
uint32_t eid_epoch;
|
||||
bool swid_pretty, swid_full;
|
||||
enumerator_t *enumerator;
|
||||
@@ -173,9 +171,6 @@ static bool add_swid_inventory(imc_state_t *state, imc_msg_t *msg,
|
||||
swid_directory = lib->settings->get_str(lib->settings,
|
||||
"%s.plugins.imc-swid.swid_directory",
|
||||
SWID_DIRECTORY, lib->ns);
|
||||
swid_generator = lib->settings->get_str(lib->settings,
|
||||
"%s.plugins.imc-swid.swid_generator",
|
||||
SWID_GENERATOR, lib->ns);
|
||||
swid_pretty = lib->settings->get_bool(lib->settings,
|
||||
"%s.plugins.imc-swid.swid_pretty",
|
||||
FALSE, lib->ns);
|
||||
@@ -184,8 +179,8 @@ static bool add_swid_inventory(imc_state_t *state, imc_msg_t *msg,
|
||||
FALSE, lib->ns);
|
||||
|
||||
swid_inventory = swid_inventory_create(full_tags);
|
||||
if (!swid_inventory->collect(swid_inventory, swid_directory, swid_generator,
|
||||
targets, swid_pretty, swid_full))
|
||||
if (!swid_inventory->collect(swid_inventory, swid_directory, targets,
|
||||
swid_pretty, swid_full))
|
||||
{
|
||||
swid_inventory->destroy(swid_inventory);
|
||||
attr_error = swid_error_create(TCG_SWID_ERROR, request_id,
|
||||
|
||||
@@ -590,7 +590,7 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
|
||||
DBG1(DBG_IMV, " %s", target);
|
||||
|
||||
/* Separate target into tag_creator and unique_sw_id */
|
||||
separator = strchr(target, '_');
|
||||
separator = strstr(target, "__");
|
||||
if (!separator)
|
||||
{
|
||||
error_str = "separation of regid from "
|
||||
@@ -598,9 +598,9 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
|
||||
break;
|
||||
}
|
||||
tag_creator = chunk_create(target, separator - target);
|
||||
separator++;
|
||||
separator += 2;
|
||||
unique_sw_id = chunk_create(separator, strlen(target) -
|
||||
tag_creator.len - 1);
|
||||
tag_creator.len - 2);
|
||||
tag_id = swid_tag_id_create(tag_creator, unique_sw_id,
|
||||
chunk_empty);
|
||||
cast_attr = (tcg_swid_attr_req_t*)attr;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2016 Andreas Steffen
|
||||
* Copyright (C) 2013-2017 Andreas Steffen
|
||||
* HSR Hochschule fuer Technik Rapperswil
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
@@ -288,8 +288,8 @@ METHOD(imv_swid_state_t, get_request_id, uint32_t,
|
||||
METHOD(imv_swid_state_t, set_swid_inventory, void,
|
||||
private_imv_swid_state_t *this, swid_inventory_t *inventory)
|
||||
{
|
||||
chunk_t tag_creator, unique_sw_id;
|
||||
char software_id[256];
|
||||
chunk_t tag_creator, sw_id;
|
||||
char software_id[BUF_LEN];
|
||||
json_object *jstring;
|
||||
swid_tag_id_t *tag_id;
|
||||
enumerator_t *enumerator;
|
||||
@@ -299,10 +299,9 @@ METHOD(imv_swid_state_t, set_swid_inventory, void,
|
||||
{
|
||||
/* Construct software ID from tag creator and unique software ID */
|
||||
tag_creator = tag_id->get_tag_creator(tag_id);
|
||||
unique_sw_id = tag_id->get_unique_sw_id(tag_id, NULL);
|
||||
snprintf(software_id, 256, "%.*s_%.*s",
|
||||
tag_creator.len, tag_creator.ptr,
|
||||
unique_sw_id.len, unique_sw_id.ptr);
|
||||
sw_id = tag_id->get_unique_sw_id(tag_id, NULL);
|
||||
snprintf(software_id, BUF_LEN, "%.*s__%.*s",
|
||||
tag_creator.len, tag_creator.ptr, sw_id.len, sw_id.ptr);
|
||||
DBG3(DBG_IMV, " %s", software_id);
|
||||
|
||||
/* Add software ID to JSON array */
|
||||
|
||||
Reference in New Issue
Block a user