6e264bc925c5f206cc347169e703b6018fb0b0c0
[strongswan.git] / src / libimcv / ietf / ietf_attr.h
1 /*
2 * Copyright (C) 2011-2018 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 /**
17 * @defgroup ietf_attr ietf_attr
18 * @{ @ingroup libimcv
19 */
20
21 #ifndef IETF_ATTR_H_
22 #define IETF_ATTR_H_
23
24 #include "pa_tnc/pa_tnc_attr.h"
25
26 #include <library.h>
27
28 typedef enum ietf_attr_t ietf_attr_t;
29
30 /**
31 * IETF standard PA-TNC attribute types
32 */
33 enum ietf_attr_t {
34
35 /* RFC 5792 */
36 IETF_ATTR_TESTING = 0,
37 IETF_ATTR_ATTRIBUTE_REQUEST = 1,
38 IETF_ATTR_PRODUCT_INFORMATION = 2,
39 IETF_ATTR_NUMERIC_VERSION = 3,
40 IETF_ATTR_STRING_VERSION = 4,
41 IETF_ATTR_OPERATIONAL_STATUS = 5,
42 IETF_ATTR_PORT_FILTER = 6,
43 IETF_ATTR_INSTALLED_PACKAGES = 7,
44 IETF_ATTR_PA_TNC_ERROR = 8,
45 IETF_ATTR_ASSESSMENT_RESULT = 9,
46 IETF_ATTR_REMEDIATION_INSTRUCTIONS = 10,
47 IETF_ATTR_FORWARDING_ENABLED = 11,
48 IETF_ATTR_FACTORY_DEFAULT_PWD_ENABLED = 12,
49
50 /* draft-ietf-sacm-nea-swid-patnc */
51 IETF_ATTR_SWIMA_REQUEST = 13,
52 IETF_ATTR_SW_ID_INVENTORY = 14,
53 IETF_ATTR_SW_ID_EVENTS = 15,
54 IETF_ATTR_SW_INVENTORY = 16,
55 IETF_ATTR_SW_EVENTS = 17,
56 IETF_ATTR_SUBSCRIPTION_STATUS_REQ = 18,
57 IETF_ATTR_SUBSCRIPTION_STATUS_RESP = 19,
58 IETF_ATTR_SRC_METADATA_REQ = 20,
59 IETF_ATTR_SRC_METADATA_RESP = 21,
60
61 IETF_ATTR_RESERVED = 0xffffffff,
62 };
63
64 /**
65 * enum name for ietf_attr_t.
66 */
67 extern enum_name_t *ietf_attr_names;
68
69 /**
70 * Create an IETF PA-TNC attribute from data
71 *
72 * @param type attribute type
73 * @param length attribute length
74 * @param value attribute value or segment
75 */
76 pa_tnc_attr_t* ietf_attr_create_from_data(uint32_t type, size_t length,
77 chunk_t value);
78
79 #endif /** IETF_ATTR_H_ @}*/