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>