Annotation of embedaddon/strongswan/src/libtncif/tncifimv.h, revision 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>