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.h ietf/ietf_attr.c \
|
||||||
ietf/ietf_attr_pa_tnc_error.h ietf/ietf_attr_pa_tnc_error.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 \
|
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 \
|
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_msg.h pa_tnc/pa_tnc_msg.c \
|
||||||
pa_tnc/pa_tnc_attr.h pa_tnc/pa_tnc_attr.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.
|
* for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "ita_attr.h"
|
||||||
#include "ita_attr_command.h"
|
#include "ita_attr_command.h"
|
||||||
|
|
||||||
#include <pen/pen.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"
|
#include "pa_tnc/pa_tnc_attr.h"
|
||||||
|
|
||||||
#define ITA_ATTR_COMMAND 0x01
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class implementing the ITA Command PA-TNC attribute.
|
* 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_simple_evid_final.h"
|
||||||
#include "tcg/tcg_pts_attr_req_file_meas.h"
|
#include "tcg/tcg_pts_attr_req_file_meas.h"
|
||||||
#include "tcg/tcg_pts_attr_file_meas.h"
|
#include "tcg/tcg_pts_attr_file_meas.h"
|
||||||
|
#include "ita/ita_attr.h"
|
||||||
#include "ita/ita_attr_command.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 <library.h>
|
||||||
#include <pen/pen.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.
|
* Interface for an RFC 5792 PA-TNC Posture Attribute.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -15,7 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "pa_tnc_msg.h"
|
#include "pa_tnc_msg.h"
|
||||||
|
#include "ietf/ietf_attr.h"
|
||||||
#include "ietf/ietf_attr_pa_tnc_error.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_writer.h>
|
||||||
#include <bio/bio_reader.h>
|
#include <bio/bio_reader.h>
|
||||||
@@ -112,6 +115,7 @@ METHOD(pa_tnc_msg_t, build, void,
|
|||||||
bio_writer_t *writer;
|
bio_writer_t *writer;
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
pa_tnc_attr_t *attr;
|
pa_tnc_attr_t *attr;
|
||||||
|
enum_name_t *pa_attr_names;
|
||||||
pen_t vendor_id;
|
pen_t vendor_id;
|
||||||
u_int32_t type;
|
u_int32_t type;
|
||||||
u_int8_t flags;
|
u_int8_t flags;
|
||||||
@@ -140,11 +144,13 @@ METHOD(pa_tnc_msg_t, build, void,
|
|||||||
value = attr->get_value(attr);
|
value = attr->get_value(attr);
|
||||||
flags = attr->get_noskip_flag(attr) ? PA_TNC_ATTR_FLAG_NOSKIP :
|
flags = attr->get_noskip_flag(attr) ? PA_TNC_ATTR_FLAG_NOSKIP :
|
||||||
PA_TNC_ATTR_FLAG_NONE;
|
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' "
|
DBG2(DBG_TNC, "creating PA-TNC attribute type '%N/%N' "
|
||||||
"0x%06x/0x%08x", pen_names, vendor_id,
|
"0x%06x/0x%08x", pen_names, vendor_id,
|
||||||
ietf_attr_names, type, vendor_id, type);
|
pa_attr_names, type, vendor_id, type);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -207,6 +213,7 @@ METHOD(pa_tnc_msg_t, process, status_t,
|
|||||||
u_int32_t type, length;
|
u_int32_t type, length;
|
||||||
chunk_t value, attr_info;
|
chunk_t value, attr_info;
|
||||||
pa_tnc_attr_t *attr;
|
pa_tnc_attr_t *attr;
|
||||||
|
enum_name_t *pa_attr_names;
|
||||||
ietf_attr_pa_tnc_error_t *error_attr;
|
ietf_attr_pa_tnc_error_t *error_attr;
|
||||||
|
|
||||||
attr_info = reader->peek(reader);
|
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_uint24(reader, &vendor_id);
|
||||||
reader->read_uint32(reader, &type);
|
reader->read_uint32(reader, &type);
|
||||||
reader->read_uint32(reader, &length);
|
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' "
|
DBG2(DBG_TNC, "processing PA-TNC attribute type '%N/%N' "
|
||||||
"0x%06x/0x%08x", pen_names, vendor_id,
|
"0x%06x/0x%08x", pen_names, vendor_id,
|
||||||
ietf_attr_names, type, vendor_id, type);
|
pa_attr_names, type, vendor_id, type);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -357,3 +366,21 @@ pa_tnc_msg_t *pa_tnc_msg_create(void)
|
|||||||
return pa_tnc_msg_create_from_data(chunk_empty);
|
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 <pa_tnc/pa_tnc_msg.h>
|
||||||
#include <ietf/ietf_attr.h>
|
#include <ietf/ietf_attr.h>
|
||||||
#include <ietf/ietf_attr_pa_tnc_error.h>
|
#include <ietf/ietf_attr_pa_tnc_error.h>
|
||||||
|
#include <ita/ita_attr.h>
|
||||||
#include <ita/ita_attr_command.h>
|
#include <ita/ita_attr_command.h>
|
||||||
|
|
||||||
#include <tncif_names.h>
|
#include <tncif_names.h>
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#include <pa_tnc/pa_tnc_msg.h>
|
#include <pa_tnc/pa_tnc_msg.h>
|
||||||
#include <ietf/ietf_attr.h>
|
#include <ietf/ietf_attr.h>
|
||||||
#include <ietf/ietf_attr_pa_tnc_error.h>
|
#include <ietf/ietf_attr_pa_tnc_error.h>
|
||||||
|
#include <ita/ita_attr.h>
|
||||||
#include <ita/ita_attr_command.h>
|
#include <ita/ita_attr_command.h>
|
||||||
|
|
||||||
#include <tncif_names.h>
|
#include <tncif_names.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user