Annotation of embedaddon/strongswan/src/libimcv/pwg/pwg_attr.c, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2015 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 "pwg_attr.h"
17:
18: #include "generic/generic_attr_bool.h"
19: #include "generic/generic_attr_chunk.h"
20: #include "generic/generic_attr_string.h"
21: #include "ietf/ietf_attr_fwd_enabled.h"
22: #include "ietf/ietf_attr_port_filter.h"
23: #include "pwg/pwg_attr_vendor_smi_code.h"
24:
25: ENUM_BEGIN(pwg_attr_names, PWG_HCD_ATTRS_NATURAL_LANG,
26: PWG_HCD_VENDOR_SMI_CODE,
27: "HCD AttributesNaturalLanguage",
28: "HCD MachineTypeModel",
29: "HCD VendorName",
30: "HCD VendorSMICode");
31: ENUM_NEXT(pwg_attr_names, PWG_HCD_DEFAULT_PWD_ENABLED,
32: PWG_HCD_FORWARDING_ENABLED,
33: PWG_HCD_VENDOR_SMI_CODE,
34: "HCD DefaultPasswordEnabled",
35: "HCD FirewallSetting",
36: "HCD ForwardingEnabled");
37: ENUM_NEXT(pwg_attr_names, PWG_HCD_PSTN_FAX_ENABLED,
38: PWG_HCD_PSTN_FAX_ENABLED,
39: PWG_HCD_FORWARDING_ENABLED,
40: "HCD PSTNFaxEnabled");
41: ENUM_NEXT(pwg_attr_names, PWG_HCD_TIME_SOURCE,
42: PWG_HCD_TIME_SOURCE,
43: PWG_HCD_PSTN_FAX_ENABLED,
44: "HCD TimeSource");
45: ENUM_NEXT(pwg_attr_names, PWG_HCD_FIRMWARE_NAME,
46: PWG_HCD_FIRMWARE_VERSION,
47: PWG_HCD_TIME_SOURCE,
48: "HCD FirmwareName",
49: "HCD FirmwarePatches",
50: "HCD FirmwareStringVersion",
51: "HCD FirmwareVersion");
52: ENUM_NEXT(pwg_attr_names, PWG_HCD_RESIDENT_APP_NAME,
53: PWG_HCD_RESIDENT_APP_VERSION,
54: PWG_HCD_FIRMWARE_VERSION,
55: "HCD ResidentApplicationName",
56: "HCD ResidentApplicationPatches",
57: "HCD ResidentApplicationStringVersion",
58: "HCD ResidentApplicationVersion");
59: ENUM_NEXT(pwg_attr_names, PWG_HCD_USER_APP_NAME,
60: PWG_HCD_USER_APP_PERSIST_ENABLED,
61: PWG_HCD_RESIDENT_APP_VERSION,
62: "HCD UserApplicationName",
63: "HCD UserApplicationPatches",
64: "HCD UserApplicationStringVersion",
65: "HCD UserApplicationVersion",
66: "HCD UserApplicationEnabled",
67: "HCD UserApplicationPersistenceEnabled");
68: ENUM_NEXT(pwg_attr_names, PWG_HCD_CERTIFICATION_STATE,
69: PWG_HCD_CONFIGURATION_STATE,
70: PWG_HCD_USER_APP_PERSIST_ENABLED,
71: "HCD CertificationState",
72: "HCD ConfigurationState");
73: ENUM_END(pwg_attr_names, PWG_HCD_CONFIGURATION_STATE);
74:
75: /**
76: * See header
77: */
78: pa_tnc_attr_t* pwg_attr_create_from_data(uint32_t type, size_t length, chunk_t value)
79: {
80: switch (type)
81: {
82: case PWG_HCD_DEFAULT_PWD_ENABLED:
83: case PWG_HCD_USER_APP_ENABLED:
84: case PWG_HCD_USER_APP_PERSIST_ENABLED:
85: case PWG_HCD_PSTN_FAX_ENABLED:
86: return generic_attr_bool_create_from_data(length, value,
87: pen_type_create(PEN_PWG, type));
88: case PWG_HCD_ATTRS_NATURAL_LANG:
89: case PWG_HCD_MACHINE_TYPE_MODEL:
90: case PWG_HCD_VENDOR_NAME:
91: case PWG_HCD_FIRMWARE_NAME:
92: case PWG_HCD_FIRMWARE_PATCHES:
93: case PWG_HCD_FIRMWARE_STRING_VERSION:
94: case PWG_HCD_TIME_SOURCE:
95: case PWG_HCD_USER_APP_NAME:
96: case PWG_HCD_USER_APP_PATCHES:
97: case PWG_HCD_USER_APP_STRING_VERSION:
98: case PWG_HCD_RESIDENT_APP_NAME:
99: case PWG_HCD_RESIDENT_APP_PATCHES:
100: case PWG_HCD_RESIDENT_APP_STRING_VERSION:
101: return generic_attr_string_create_from_data(length, value,
102: pen_type_create(PEN_PWG, type));
103: case PWG_HCD_FIRMWARE_VERSION:
104: case PWG_HCD_RESIDENT_APP_VERSION:
105: case PWG_HCD_USER_APP_VERSION:
106: return generic_attr_chunk_create_from_data(length, value, 16,
107: pen_type_create(PEN_PWG, type));
108: case PWG_HCD_CERTIFICATION_STATE:
109: case PWG_HCD_CONFIGURATION_STATE:
110: return generic_attr_chunk_create_from_data(length, value, 0,
111: pen_type_create(PEN_PWG, type));
112: case PWG_HCD_VENDOR_SMI_CODE:
113: return pwg_attr_vendor_smi_code_create_from_data(length, value);
114: case PWG_HCD_FORWARDING_ENABLED:
115: return ietf_attr_fwd_enabled_create_from_data(length, value,
116: pen_type_create(PEN_PWG, type));
117: case PWG_HCD_FIREWALL_SETTING:
118: return ietf_attr_port_filter_create_from_data(length, value,
119: pen_type_create(PEN_PWG, type));
120: default:
121: return NULL;
122: }
123: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>