Annotation of embedaddon/strongswan/src/libtncif/tncifimv.h, revision 1.1.1.1
1.1 misho 1: /* tncifimv.h
2: *
3: * Trusted Network Connect IF-IMV API version 1.30
4: * Microsoft Windows DLL Platform Binding C Header
5: * October 14, 2011
6: *
7: * Copyright(c) 2005-2011, Trusted Computing Group, Inc. All rights
8: * reserved.
9: *
10: * Redistribution and use in source and binary forms, with or without
11: * modification, are permitted provided that the following conditions
12: * are met:
13: * o Redistributions of source code must retain the above copyright
14: * notice, this list of conditions and the following disclaimer.
15: * o Redistributions in binary form must reproduce the above copyright
16: * notice, this list of conditions and the following disclaimer in
17: * the documentation and/or other materials provided with the
18: * distribution.
19: * o Neither the name of the Trusted Computing Group nor the names of
20: * its contributors may be used to endorse or promote products
21: * derived from this software without specific prior written
22: * permission.
23: *
24: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27: * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28: * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30: * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35: * POSSIBILITY OF SUCH DAMAGE.
36: *
37: * Contact the Trusted Computing Group at
38: * admin@trustedcomputinggroup.org for information on specification
39: * licensing through membership agreements.
40: *
41: * Any marks and brands contained herein are the property of their
42: * respective owners.
43: */
44:
45: /**
46: * @defgroup tncifimv tncifimv
47: * @{ @ingroup libtncif
48: */
49:
50: #ifndef TNCIFIMV_H_
51: #define TNCIFIMV_H_
52:
53: #include "tncif.h"
54:
55: #ifdef WIN32
56: #ifdef TNC_IMV_EXPORTS
57: #define TNC_IMV_API __declspec(dllexport)
58: #else
59: #define TNC_IMV_API __declspec(dllimport)
60: #endif
61: #else
62: #define TNC_IMV_API
63: #endif
64:
65: /* Derived Types */
66:
67: typedef TNC_UInt32 TNC_IMVID;
68: typedef TNC_UInt32 TNC_IMV_Action_Recommendation;
69: typedef TNC_UInt32 TNC_IMV_Evaluation_Result;
70:
71: /* Function pointers */
72:
73: typedef TNC_Result (*TNC_IMV_InitializePointer)(
74: TNC_IMVID imvID,
75: TNC_Version minVersion,
76: TNC_Version maxVersion,
77: TNC_Version *pOutActualVersion);
78: typedef TNC_Result (*TNC_IMV_NotifyConnectionChangePointer)(
79: TNC_IMVID imvID,
80: TNC_ConnectionID connectionID,
81: TNC_ConnectionState newState);
82: typedef TNC_Result (*TNC_IMV_ReceiveMessagePointer)(
83: TNC_IMVID imvID,
84: TNC_ConnectionID connectionID,
85: TNC_BufferReference message,
86: TNC_UInt32 messageLength,
87: TNC_MessageType messageType);
88: typedef TNC_Result (*TNC_IMV_ReceiveMessageSOHPointer)(
89: TNC_IMVID imvID,
90: TNC_ConnectionID connectionID,
91: TNC_BufferReference sohReportEntry,
92: TNC_UInt32 sohRELength,
93: TNC_MessageType systemHealthID);
94: typedef TNC_Result (*TNC_IMV_ReceiveMessageLongPointer)(
95: TNC_IMVID imvID,
96: TNC_ConnectionID connectionID,
97: TNC_UInt32 messageFlags,
98: TNC_BufferReference message,
99: TNC_UInt32 messageLength,
100: TNC_VendorID messageVendorID,
101: TNC_MessageSubtype messageSubtype,
102: TNC_UInt32 sourceIMCID,
103: TNC_UInt32 destinationIMVID);
104: typedef TNC_Result (*TNC_IMV_SolicitRecommendationPointer)(
105: TNC_IMVID imvID,
106: TNC_ConnectionID connectionID);
107: typedef TNC_Result (*TNC_IMV_BatchEndingPointer)(
108: TNC_IMVID imvID,
109: TNC_ConnectionID connectionID);
110: typedef TNC_Result (*TNC_IMV_TerminatePointer)(
111: TNC_IMVID imvID);
112: typedef TNC_Result (*TNC_TNCS_ReportMessageTypesPointer)(
113: TNC_IMVID imvID,
114: TNC_MessageTypeList supportedTypes,
115: TNC_UInt32 typeCount);
116: typedef TNC_Result (*TNC_TNCS_ReportMessageTypesLongPointer)(
117: TNC_IMVID imvID,
118: TNC_VendorIDList supportedVendorIDs,
119: TNC_MessageSubtypeList supportedSubtypes,
120: TNC_UInt32 typeCount);
121: typedef TNC_Result (*TNC_TNCS_SendMessagePointer)(
122: TNC_IMVID imvID,
123: TNC_ConnectionID connectionID,
124: TNC_BufferReference message,
125: TNC_UInt32 messageLength,
126: TNC_MessageType messageType);
127: typedef TNC_Result (*TNC_TNCS_SendMessageSOHPointer)(
128: TNC_IMVID imvID,
129: TNC_ConnectionID connectionID,
130: TNC_BufferReference sohrReportEntry,
131: TNC_UInt32 sohrRELength);
132: typedef TNC_Result (*TNC_TNCS_SendMessageLongPointer)(
133: TNC_IMVID imvID,
134: TNC_ConnectionID connectionID,
135: TNC_UInt32 messageFlags,
136: TNC_BufferReference message,
137: TNC_UInt32 messageLength,
138: TNC_VendorID messageVendorID,
139: TNC_MessageSubtype messageSubtype,
140: TNC_UInt32 destinationIMCID);
141: typedef TNC_Result (*TNC_TNCS_RequestHandshakeRetryPointer)(
142: TNC_IMVID imvID,
143: TNC_ConnectionID connectionID,
144: TNC_RetryReason reason);
145: typedef TNC_Result (*TNC_TNCS_ProvideRecommendationPointer)(
146: TNC_IMVID imvID,
147: TNC_ConnectionID connectionID,
148: TNC_IMV_Action_Recommendation recommendation,
149: TNC_IMV_Evaluation_Result evaluation);
150: typedef TNC_Result (*TNC_TNCS_GetAttributePointer)(
151: TNC_IMVID imvID,
152: TNC_ConnectionID connectionID,
153: TNC_AttributeID attributeID,
154: TNC_UInt32 bufferLength,
155: TNC_BufferReference buffer,
156: TNC_UInt32 *pOutValueLength);
157: typedef TNC_Result (*TNC_TNCS_SetAttributePointer)(
158: TNC_IMVID imvID,
159: TNC_ConnectionID connectionID,
160: TNC_AttributeID attributeID,
161: TNC_UInt32 bufferLength,
162: TNC_BufferReference buffer);
163: typedef TNC_Result (*TNC_TNCS_ReserveAdditionalIMVIDPointer)(
164: TNC_IMVID imvID,
165: TNC_UInt32 *pOutIMVID);
166: typedef TNC_Result (*TNC_TNCS_BindFunctionPointer)(
167: TNC_IMVID imvID,
168: char *functionName,
169: void **pOutfunctionPointer);
170: typedef TNC_Result (*TNC_IMV_ProvideBindFunctionPointer)(
171: TNC_IMVID imvID,
172: TNC_TNCS_BindFunctionPointer bindFunction);
173:
174: /* Version Numbers */
175:
176: #define TNC_IFIMV_VERSION_1 1
177:
178: /* Handshake Retry Reason Values */
179:
180: /* reserved for TNC_RETRY_REASON_IMC_REMEDIATION_COMPLETE: 0 */
181: /* reserved for TNC_RETRY_REASON_IMC_SERIOUS_EVENT: 1 */
182: /* reserved for TNC_RETRY_REASON_IMC_INFORMATIONAL_EVENT: 2 */
183: /* reserved for TNC_RETRY_REASON_IMC_PERIODIC: 3 */
184: #define TNC_RETRY_REASON_IMV_IMPORTANT_POLICY_CHANGE 4
185: #define TNC_RETRY_REASON_IMV_MINOR_POLICY_CHANGE 5
186: #define TNC_RETRY_REASON_IMV_SERIOUS_EVENT 6
187: #define TNC_RETRY_REASON_IMV_MINOR_EVENT 7
188: #define TNC_RETRY_REASON_IMV_PERIODIC 8
189:
190: /* IMV Action Recommendation Values */
191:
192: #define TNC_IMV_ACTION_RECOMMENDATION_ALLOW 0
193: #define TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS 1
194: #define TNC_IMV_ACTION_RECOMMENDATION_ISOLATE 2
195: #define TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION 3
196:
197: /* IMV Evaluation Result Values */
198:
199: #define TNC_IMV_EVALUATION_RESULT_COMPLIANT 0
200: #define TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR 1
201: #define TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR 2
202: #define TNC_IMV_EVALUATION_RESULT_ERROR 3
203: #define TNC_IMV_EVALUATION_RESULT_DONT_KNOW 4
204:
205: /* Message Attribute ID Values */
206:
207: #define TNC_ATTRIBUTEID_REASON_STRING ((TNC_AttributeID) 0x00000002)
208: #define TNC_ATTRIBUTEID_REASON_LANGUAGE ((TNC_AttributeID) 0x00000003)
209: #define TNC_ATTRIBUTEID_SOH ((TNC_AttributeID) 0x00559706)
210: #define TNC_ATTRIBUTEID_SSOH ((TNC_AttributeID) 0x00559707)
211: #define TNC_ATTRIBUTEID_PRIMARY_IMV_ID ((TNC_AttributeID) 0x00559710)
212: #define TNC_ATTRIBUTEID_AR_IDENTITIES ((TNC_AttributeID) 0x00559712)
213:
214: /* TNC Identity Types */
215:
216: #define TNC_ID_UNKNOWN 0
217: #define TNC_ID_IPV4_ADDR 1
218: #define TNC_ID_IPV6_ADDR 2
219: #define TNC_ID_FQDN 3
220: #define TNC_ID_EMAIL_ADDR 4
221: #define TNC_ID_USERNAME 5
222: #define TNC_ID_X500_DN 6
223:
224: /* TNC Subject Types */
225:
226: #define TNC_SUBJECT_UNKNOWN 0
227: #define TNC_SUBJECT_MACHINE 1
228: #define TNC_SUBJECT_USER 2
229:
230: /* TNC Authentication Types */
231:
232: #define TNC_AUTH_UNKNOWN 0
233: #define TNC_AUTH_X509_CERT 1
234: #define TNC_AUTH_PASSWORD 2
235: #define TNC_AUTH_SIM 3
236:
237: /* IMV Functions */
238:
239: TNC_IMV_API TNC_Result TNC_IMV_Initialize(
240: /*in*/ TNC_IMVID imvID,
241: /*in*/ TNC_Version minVersion,
242: /*in*/ TNC_Version maxVersion,
243: /*in*/ TNC_Version *pOutActualVersion);
244:
245: TNC_IMV_API TNC_Result TNC_IMV_NotifyConnectionChange(
246: /*in*/ TNC_IMVID imvID,
247: /*in*/ TNC_ConnectionID connectionID,
248: /*in*/ TNC_ConnectionState newState);
249:
250: TNC_IMV_API TNC_Result TNC_IMV_ReceiveMessage(
251: /*in*/ TNC_IMVID imvID,
252: /*in*/ TNC_ConnectionID connectionID,
253: /*in*/ TNC_BufferReference messageBuffer,
254: /*in*/ TNC_UInt32 messageLength,
255: /*in*/ TNC_MessageType messageType);
256:
257: TNC_IMV_API TNC_Result TNC_IMV_ReceiveMessageSOH(
258: /*in*/ TNC_IMVID imvID,
259: /*in*/ TNC_ConnectionID connectionID,
260: /*in*/ TNC_BufferReference sohReportEntry,
261: /*in*/ TNC_UInt32 sohRELength,
262: /*in*/ TNC_MessageType systemHealthID);
263:
264: TNC_IMV_API TNC_Result TNC_IMV_ReceiveMessageLong(
265: /*in*/ TNC_IMVID imvID,
266: /*in*/ TNC_ConnectionID connectionID,
267: /*in*/ TNC_UInt32 messageFlags,
268: /*in*/ TNC_BufferReference message,
269: /*in*/ TNC_UInt32 messageLength,
270: /*in*/ TNC_VendorID messageVendorID,
271: /*in*/ TNC_MessageSubtype messageSubtype,
272: /*in*/ TNC_UInt32 sourceIMCID,
273: /*in*/ TNC_UInt32 destinationIMVID);
274:
275: TNC_IMV_API TNC_Result TNC_IMV_SolicitRecommendation(
276: /*in*/ TNC_IMVID imvID,
277: /*in*/ TNC_ConnectionID connectionID);
278:
279: TNC_IMV_API TNC_Result TNC_IMV_BatchEnding(
280: /*in*/ TNC_IMVID imvID,
281: /*in*/ TNC_ConnectionID connectionID);
282:
283: TNC_IMV_API TNC_Result TNC_IMV_Terminate(
284: /*in*/ TNC_IMVID imvID);
285:
286: TNC_IMV_API TNC_Result TNC_IMV_ProvideBindFunction(
287: /*in*/ TNC_IMVID imvID,
288: /*in*/ TNC_TNCS_BindFunctionPointer bindFunction);
289:
290: /* TNC Server Functions */
291:
292: TNC_Result TNC_TNCS_ReportMessageTypes(
293: /*in*/ TNC_IMVID imvID,
294: /*in*/ TNC_MessageTypeList supportedTypes,
295: /*in*/ TNC_UInt32 typeCount);
296:
297: TNC_Result TNC_TNCS_ReportMessageTypesLong(
298: /*in*/ TNC_IMVID imvID,
299: /*in*/ TNC_VendorIDList supportedVendorIDs,
300: /*in*/ TNC_MessageSubtypeList supportedSubtypes,
301: /*in*/ TNC_UInt32 typeCount);
302:
303: TNC_Result TNC_TNCS_SendMessage(
304: /*in*/ TNC_IMVID imvID,
305: /*in*/ TNC_ConnectionID connectionID,
306: /*in*/ TNC_BufferReference message,
307: /*in*/ TNC_UInt32 messageLength,
308: /*in*/ TNC_MessageType messageType);
309:
310: TNC_Result TNC_TNCS_SendMessageSOH(
311: /*in*/ TNC_IMVID imvID,
312: /*in*/ TNC_ConnectionID connectionID,
313: /*in*/ TNC_BufferReference sohrReportEntry,
314: /*in*/ TNC_UInt32 sohrRELength);
315:
316: TNC_Result TNC_TNCS_SendMessageLong(
317: /*in*/ TNC_IMVID imvID,
318: /*in*/ TNC_ConnectionID connectionID,
319: /*in*/ TNC_UInt32 messageFlags,
320: /*in*/ TNC_BufferReference message,
321: /*in*/ TNC_UInt32 messageLength,
322: /*in*/ TNC_VendorID messageVendorID,
323: /*in*/ TNC_MessageSubtype messageSubtype,
324: /*in*/ TNC_UInt32 destinationIMCID);
325:
326: TNC_Result TNC_TNCS_RequestHandshakeRetry(
327: /*in*/ TNC_IMVID imvID,
328: /*in*/ TNC_ConnectionID connectionID,
329: /*in*/ TNC_RetryReason reason);
330:
331: TNC_Result TNC_TNCS_ProvideRecommendation(
332: /*in*/ TNC_IMVID imvID,
333: /*in*/ TNC_ConnectionID connectionID,
334: /*in*/ TNC_IMV_Action_Recommendation recommendation,
335: /*in*/ TNC_IMV_Evaluation_Result evaluation);
336:
337: TNC_Result TNC_TNCS_GetAttribute(
338: /*in*/ TNC_IMVID imvID,
339: /*in*/ TNC_ConnectionID connectionID,
340: /*in*/ TNC_AttributeID attributeID,
341: /*in*/ TNC_UInt32 bufferLength,
342: /*out*/ TNC_BufferReference buffer,
343: /*out*/ TNC_UInt32 *pOutValueLength);
344:
345: TNC_Result TNC_TNCS_ReserveAdditionalIMVID(
346: /*in*/ TNC_IMVID imvID,
347: /*out*/ TNC_UInt32 *pOutIMVID);
348:
349: TNC_Result TNC_TNCS_SetAttribute(
350: /*in*/ TNC_IMVID imvID,
351: /*in*/ TNC_ConnectionID connectionID,
352: /*in*/ TNC_AttributeID attributeID,
353: /*in*/ TNC_UInt32 bufferLength,
354: /*in*/ TNC_BufferReference buffer);
355: TNC_Result TNC_TNCS_BindFunction(
356: /*in*/ TNC_IMVID imvID,
357: /*in*/ char *functionName,
358: /*in*/ void **pOutfunctionPointer);
359:
360: #endif /** TNCIFIMV_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>