libimcv: Added IETF Software PA-TNC attributes

This commit is contained in:
Andreas Steffen
2017-07-08 23:19:51 +02:00
parent 8c4c824706
commit 0cc0b53b2f
4 changed files with 70 additions and 13 deletions
+27 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2011-2015 Andreas Steffen * Copyright (C) 2011-2017 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil * HSR Hochschule fuer Technik Rapperswil
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
@@ -28,7 +28,8 @@
#include "generic/generic_attr_bool.h" #include "generic/generic_attr_bool.h"
ENUM(ietf_attr_names, IETF_ATTR_TESTING, IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED, ENUM_BEGIN(ietf_attr_names, IETF_ATTR_TESTING,
IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED,
"Testing", "Testing",
"Attribute Request", "Attribute Request",
"Product Information", "Product Information",
@@ -43,6 +44,20 @@ ENUM(ietf_attr_names, IETF_ATTR_TESTING, IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED,
"Forwarding Enabled", "Forwarding Enabled",
"Factory Default Password Enabled", "Factory Default Password Enabled",
); );
ENUM_NEXT(ietf_attr_names, IETF_ATTR_SW_REQUEST,
IETF_ATTR_SRC_METADATA_RESP,
IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED,
"SW Request",
"SW Identifier Inventory",
"SW Identifier Events",
"SW Inventory",
"SW Events",
"SW Subscription Status Request",
"SW Subscription Status Response",
"SW Source Metadata Request",
"SW Source Metadata Response",
);
ENUM_END(ietf_attr_names, IETF_ATTR_SRC_METADATA_RESP);
/** /**
* See header * See header
@@ -81,6 +96,16 @@ pa_tnc_attr_t* ietf_attr_create_from_data(uint32_t type, size_t length,
pen_type_create(PEN_IETF, type)); pen_type_create(PEN_IETF, type));
case IETF_ATTR_TESTING: case IETF_ATTR_TESTING:
case IETF_ATTR_RESERVED: case IETF_ATTR_RESERVED:
/* unsupported IETF/SWIMA attributes */
case IETF_ATTR_SW_REQUEST:
case IETF_ATTR_SW_ID_INVENTORY:
case IETF_ATTR_SW_ID_EVENTS:
case IETF_ATTR_SW_INVENTORY:
case IETF_ATTR_SW_EVENTS:
case IETF_ATTR_SUBSCRIPTION_STATUS_REQ:
case IETF_ATTR_SUBSCRIPTION_STATUS_RESP:
case IETF_ATTR_SRC_METADATA_REQ:
case IETF_ATTR_SRC_METADATA_RESP:
default: default:
return NULL; return NULL;
} }
+16 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2011-2014 Andreas Steffen * Copyright (C) 2011-2017 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil * HSR Hochschule fuer Technik Rapperswil
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
@@ -28,9 +28,11 @@
typedef enum ietf_attr_t ietf_attr_t; typedef enum ietf_attr_t ietf_attr_t;
/** /**
* IETF standard PA-TNC attribute types defined by RFC 5792 * IETF standard PA-TNC attribute types
*/ */
enum ietf_attr_t { enum ietf_attr_t {
/* RFC 5792 */
IETF_ATTR_TESTING = 0, IETF_ATTR_TESTING = 0,
IETF_ATTR_ATTRIBUTE_REQUEST = 1, IETF_ATTR_ATTRIBUTE_REQUEST = 1,
IETF_ATTR_PRODUCT_INFORMATION = 2, IETF_ATTR_PRODUCT_INFORMATION = 2,
@@ -44,6 +46,18 @@ enum ietf_attr_t {
IETF_ATTR_REMEDIATION_INSTRUCTIONS = 10, IETF_ATTR_REMEDIATION_INSTRUCTIONS = 10,
IETF_ATTR_FORWARDING_ENABLED = 11, IETF_ATTR_FORWARDING_ENABLED = 11,
IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED = 12, IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED = 12,
/* draft-ietf-sacm-nea-swid-patnc */
IETF_ATTR_SW_REQUEST = 17,
IETF_ATTR_SW_ID_INVENTORY = 18,
IETF_ATTR_SW_ID_EVENTS = 19,
IETF_ATTR_SW_INVENTORY = 20,
IETF_ATTR_SW_EVENTS = 21,
IETF_ATTR_SUBSCRIPTION_STATUS_REQ = 22,
IETF_ATTR_SUBSCRIPTION_STATUS_RESP = 23,
IETF_ATTR_SRC_METADATA_REQ = 24,
IETF_ATTR_SRC_METADATA_RESP = 25,
IETF_ATTR_RESERVED = 0xffffffff, IETF_ATTR_RESERVED = 0xffffffff,
}; };
+13 -3
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2011-2014 Andreas Steffen * Copyright (C) 2011-2017 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil * HSR Hochschule fuer Technik Rapperswil
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
@@ -20,13 +20,23 @@
#include <bio/bio_reader.h> #include <bio/bio_reader.h>
#include <utils/debug.h> #include <utils/debug.h>
ENUM(pa_tnc_error_code_names, PA_ERROR_RESERVED, ENUM_BEGIN(pa_tnc_error_code_names, PA_ERROR_RESERVED,
PA_ERROR_ATTR_TYPE_NOT_SUPPORTED, PA_ERROR_ATTR_TYPE_NOT_SUPPORTED,
"Reserved", "Reserved",
"Invalid Parameter", "Invalid Parameter",
"Version Not Supported", "Version Not Supported",
"Attribute Type Not Supported" "Attribute Type Not Supported"
); );
ENUM_NEXT(pa_tnc_error_code_names, PA_ERROR_SW,
PA_ERROR_SW_SUBSCRIPTION_ID_REUSE,
PA_ERROR_ATTR_TYPE_NOT_SUPPORTED,
"SW Error",
"SW Subscription Denied",
"SW Response Too Large",
"SW Subscription Fulfillment Error",
"SW Subscription ID Reuse"
);
ENUM_END(pa_tnc_error_code_names, PA_ERROR_SW_SUBSCRIPTION_ID_REUSE);
typedef struct private_ietf_attr_pa_tnc_error_t private_ietf_attr_pa_tnc_error_t; typedef struct private_ietf_attr_pa_tnc_error_t private_ietf_attr_pa_tnc_error_t;
+14 -6
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2011-2014 Andreas Steffen * Copyright (C) 2011-2017 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil * HSR Hochschule fuer Technik Rapperswil
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
@@ -27,15 +27,23 @@ typedef enum pa_tnc_error_code_t pa_tnc_error_code_t;
#include "ietf_attr.h" #include "ietf_attr.h"
#include "pa_tnc/pa_tnc_attr.h" #include "pa_tnc/pa_tnc_attr.h"
/** /**
* IETF Standard PA-TNC Error Codes as defined in section 4.2.8 of RFC 5792 * IETF Standard PA-TNC Error Codes as defined in section 4.2.8 of RFC 5792
*/ */
enum pa_tnc_error_code_t { enum pa_tnc_error_code_t {
PA_ERROR_RESERVED = 0,
PA_ERROR_INVALID_PARAMETER = 1, /* RFC 5792 PA-TNC */
PA_ERROR_VERSION_NOT_SUPPORTED = 2, PA_ERROR_RESERVED = 0,
PA_ERROR_ATTR_TYPE_NOT_SUPPORTED = 3, PA_ERROR_INVALID_PARAMETER = 1,
PA_ERROR_VERSION_NOT_SUPPORTED = 2,
PA_ERROR_ATTR_TYPE_NOT_SUPPORTED = 3,
/* draft-ietf-sacm-nea-swid-patnc (SWIMA) */
PA_ERROR_SW = 32,
PA_ERROR_SW_SUBSCRIPTION_DENIED = 33,
PA_ERROR_SW_RESPONSE_TOO_LARGE = 34,
PA_ERROR_SW_SUBSCRIPTION_FULFILLMENT = 35,
PA_ERROR_SW_SUBSCRIPTION_ID_REUSE = 36
}; };
/** /**