implemented the RFC 5792 PA-TNC protocol and an example IMC/IMV pair
[strongswan.git] / src / libimcv / pa_tnc / pa_tnc_attr.c
1 /*
2 * Copyright (C) 2011 Andreas Steffen
3 * HSR Hochschule fuer Technik Rapperswil
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 */
15
16 #include "pa_tnc_attr.h"
17 #include "ietf/ietf_attr.h"
18 #include "ietf/ietf_attr_pa_tnc_error.h"
19 #include "ita/ita_attr_command.h"
20
21 /**
22 * See header
23 */
24 pa_tnc_attr_t* pa_tnc_attr_create_from_data(pen_t vendor_id, u_int32_t type,
25 chunk_t value)
26 {
27 switch (vendor_id)
28 {
29 case PEN_IETF:
30 switch (type)
31 {
32 case IETF_ATTR_PA_TNC_ERROR:
33 return ietf_attr_pa_tnc_error_create_from_data(value);
34 case IETF_ATTR_TESTING:
35 case IETF_ATTR_ATTRIBUTE_REQUEST:
36 case IETF_ATTR_PRODUCT_INFORMATION:
37 case IETF_ATTR_NUMERIC_VERSION:
38 case IETF_ATTR_STRING_VERSION:
39 case IETF_ATTR_OPERATIONAL_STATUS:
40 case IETF_ATTR_PORT_FILTER:
41 case IETF_ATTR_INSTALLED_PACKAGES:
42 case IETF_ATTR_ASSESSMENT_RESULT:
43 case IETF_ATTR_REMEDIATION_INSTRUCTIONS:
44 case IETF_ATTR_FORWARDING_ENABLED:
45 case IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED:
46 case IETF_ATTR_RESERVED:
47 default:
48 break;
49 }
50 break;
51 case PEN_ITA:
52 switch (type)
53 {
54 case ITA_ATTR_COMMAND:
55 return ita_attr_command_create_from_data(value);
56 default:
57 break;
58 }
59 break;
60 default:
61 break;
62 }
63 return NULL;
64 }