log PA-TNC attribute names
This commit is contained in:
@@ -12,6 +12,7 @@ libimcv_la_SOURCES = \
|
||||
ietf/ietf_attr.h ietf/ietf_attr.c \
|
||||
ietf/ietf_attr_pa_tnc_error.h ietf/ietf_attr_pa_tnc_error.c \
|
||||
ietf/ietf_attr_port_filter.h ietf/ietf_attr_port_filter.c \
|
||||
ita/ita_attr.h ita/ita_attr.c \
|
||||
ita/ita_attr_command.h ita/ita_attr_command.c \
|
||||
pa_tnc/pa_tnc_msg.h pa_tnc/pa_tnc_msg.c \
|
||||
pa_tnc/pa_tnc_attr.h pa_tnc/pa_tnc_attr.c \
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) 2011 Andreas Steffen
|
||||
* HSR Hochschule fuer Technik Rapperswil
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "ita_attr.h"
|
||||
|
||||
ENUM(ita_attr_names, ITA_ATTR_COMMAND, ITA_ATTR_COMMAND,
|
||||
"Command",
|
||||
);
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2011 Andreas Steffen
|
||||
* HSR Hochschule fuer Technik Rapperswil
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @defgroup ita_attrt ita_attr
|
||||
* @{ @ingroup ita_attr
|
||||
*/
|
||||
|
||||
#ifndef ITA_ATTR_H_
|
||||
#define ITA_ATTR_H_
|
||||
|
||||
#include <library.h>
|
||||
|
||||
typedef enum ita_attr_t ita_attr_t;
|
||||
|
||||
/**
|
||||
* IETF standard PA-TNC attribute types defined by RFC 5792
|
||||
*/
|
||||
enum ita_attr_t {
|
||||
ITA_ATTR_COMMAND = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum name for ita_attr_t.
|
||||
*/
|
||||
extern enum_name_t *ita_attr_names;
|
||||
|
||||
#endif /** ITA_ATTR_H_ @}*/
|
||||
@@ -12,6 +12,7 @@
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "ita_attr.h"
|
||||
#include "ita_attr_command.h"
|
||||
|
||||
#include <pen/pen.h>
|
||||
|
||||
@@ -25,8 +25,6 @@ typedef struct ita_attr_command_t ita_attr_command_t;
|
||||
|
||||
#include "pa_tnc/pa_tnc_attr.h"
|
||||
|
||||
#define ITA_ATTR_COMMAND 0x01
|
||||
|
||||
/**
|
||||
* Class implementing the ITA Command PA-TNC attribute.
|
||||
*
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "tcg/tcg_pts_attr_simple_evid_final.h"
|
||||
#include "tcg/tcg_pts_attr_req_file_meas.h"
|
||||
#include "tcg/tcg_pts_attr_file_meas.h"
|
||||
#include "ita/ita_attr.h"
|
||||
#include "ita/ita_attr_command.h"
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,6 +26,14 @@ typedef struct pa_tnc_attr_t pa_tnc_attr_t;
|
||||
#include <library.h>
|
||||
#include <pen/pen.h>
|
||||
|
||||
/**
|
||||
* Return the PA-TNC attribute names for a given PEN
|
||||
*
|
||||
* @param pen Private Enterprise Number (PEN)
|
||||
* @return pa_attr_names if found, NULL else
|
||||
*/
|
||||
extern enum_name_t *get_pa_attr_names(pen_t pen);
|
||||
|
||||
/**
|
||||
* Interface for an RFC 5792 PA-TNC Posture Attribute.
|
||||
*
|
||||
|
||||
@@ -15,7 +15,10 @@
|
||||
*/
|
||||
|
||||
#include "pa_tnc_msg.h"
|
||||
#include "ietf/ietf_attr.h"
|
||||
#include "ietf/ietf_attr_pa_tnc_error.h"
|
||||
#include "tcg/tcg_attr.h"
|
||||
#include "ita/ita_attr.h"
|
||||
|
||||
#include <bio/bio_writer.h>
|
||||
#include <bio/bio_reader.h>
|
||||
@@ -112,6 +115,7 @@ METHOD(pa_tnc_msg_t, build, void,
|
||||
bio_writer_t *writer;
|
||||
enumerator_t *enumerator;
|
||||
pa_tnc_attr_t *attr;
|
||||
enum_name_t *pa_attr_names;
|
||||
pen_t vendor_id;
|
||||
u_int32_t type;
|
||||
u_int8_t flags;
|
||||
@@ -140,11 +144,13 @@ METHOD(pa_tnc_msg_t, build, void,
|
||||
value = attr->get_value(attr);
|
||||
flags = attr->get_noskip_flag(attr) ? PA_TNC_ATTR_FLAG_NOSKIP :
|
||||
PA_TNC_ATTR_FLAG_NONE;
|
||||
if (vendor_id == PEN_IETF)
|
||||
|
||||
pa_attr_names = get_pa_attr_names(vendor_id);
|
||||
if (pa_attr_names)
|
||||
{
|
||||
DBG2(DBG_TNC, "creating PA-TNC attribute type '%N/%N' "
|
||||
"0x%06x/0x%08x", pen_names, vendor_id,
|
||||
ietf_attr_names, type, vendor_id, type);
|
||||
pa_attr_names, type, vendor_id, type);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -207,6 +213,7 @@ METHOD(pa_tnc_msg_t, process, status_t,
|
||||
u_int32_t type, length;
|
||||
chunk_t value, attr_info;
|
||||
pa_tnc_attr_t *attr;
|
||||
enum_name_t *pa_attr_names;
|
||||
ietf_attr_pa_tnc_error_t *error_attr;
|
||||
|
||||
attr_info = reader->peek(reader);
|
||||
@@ -215,11 +222,13 @@ METHOD(pa_tnc_msg_t, process, status_t,
|
||||
reader->read_uint24(reader, &vendor_id);
|
||||
reader->read_uint32(reader, &type);
|
||||
reader->read_uint32(reader, &length);
|
||||
if (vendor_id == PEN_IETF)
|
||||
|
||||
pa_attr_names = get_pa_attr_names(vendor_id);
|
||||
if (pa_attr_names)
|
||||
{
|
||||
DBG2(DBG_TNC, "processing PA-TNC attribute type '%N/%N' "
|
||||
"0x%06x/0x%08x", pen_names, vendor_id,
|
||||
ietf_attr_names, type, vendor_id, type);
|
||||
pa_attr_names, type, vendor_id, type);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -357,3 +366,21 @@ pa_tnc_msg_t *pa_tnc_msg_create(void)
|
||||
return pa_tnc_msg_create_from_data(chunk_empty);
|
||||
}
|
||||
|
||||
/**
|
||||
* See header
|
||||
*/
|
||||
enum_name_t* get_pa_attr_names(pen_t pen)
|
||||
{
|
||||
switch (pen)
|
||||
{
|
||||
case PEN_IETF:
|
||||
return ietf_attr_names;
|
||||
case PEN_TCG:
|
||||
return tcg_attr_names;
|
||||
case PEN_ITA:
|
||||
return ita_attr_names;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <pa_tnc/pa_tnc_msg.h>
|
||||
#include <ietf/ietf_attr.h>
|
||||
#include <ietf/ietf_attr_pa_tnc_error.h>
|
||||
#include <ita/ita_attr.h>
|
||||
#include <ita/ita_attr_command.h>
|
||||
|
||||
#include <tncif_names.h>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <pa_tnc/pa_tnc_msg.h>
|
||||
#include <ietf/ietf_attr.h>
|
||||
#include <ietf/ietf_attr_pa_tnc_error.h>
|
||||
#include <ita/ita_attr.h>
|
||||
#include <ita/ita_attr_command.h>
|
||||
|
||||
#include <tncif_names.h>
|
||||
|
||||
Reference in New Issue
Block a user