Annotation of embedaddon/strongswan/src/libtncif/tncifimc.h, revision 1.1.1.1

1.1       misho       1: /* tncifimc.h
                      2:  *
                      3:  * Trusted Network Connect IF-IMC 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: /**
                     47:  * @defgroup tncifimc tncifimc
                     48:  * @{ @ingroup libtncif
                     49:  */
                     50: 
                     51: #ifndef TNCIFIMC_H_
                     52: #define TNCIFIMC_H_
                     53: 
                     54: #include "tncif.h"
                     55: 
                     56: #ifdef WIN32
                     57: #ifdef TNC_IMC_EXPORTS
                     58: #define TNC_IMC_API __declspec(dllexport)
                     59: #else
                     60: #define TNC_IMC_API __declspec(dllimport)
                     61: #endif
                     62: #else
                     63: #define TNC_IMC_API
                     64: #endif
                     65: 
                     66: /* Derived Types */
                     67: 
                     68: typedef TNC_UInt32 TNC_IMCID;
                     69: 
                     70: /* Function pointers */
                     71: 
                     72: typedef TNC_Result (*TNC_IMC_InitializePointer)(
                     73:     TNC_IMCID imcID,
                     74:     TNC_Version minVersion,
                     75:     TNC_Version maxVersion,
                     76:     TNC_Version *pOutActualVersion);
                     77: typedef TNC_Result (*TNC_IMC_NotifyConnectionChangePointer)(
                     78:     TNC_IMCID imcID,
                     79:     TNC_ConnectionID connectionID,
                     80:     TNC_ConnectionState newState);
                     81: typedef TNC_Result (*TNC_IMC_BeginHandshakePointer)(
                     82:     TNC_IMCID imcID,
                     83:     TNC_ConnectionID connectionID);
                     84: typedef TNC_Result (*TNC_IMC_ReceiveMessagePointer)(
                     85:     TNC_IMCID imcID,
                     86:     TNC_ConnectionID connectionID,
                     87:     TNC_BufferReference message,
                     88:     TNC_UInt32 messageLength,
                     89:     TNC_MessageType messageType);
                     90: typedef TNC_Result (*TNC_IMC_ReceiveMessageSOHPointer)(
                     91:     TNC_IMCID imcID,
                     92:     TNC_ConnectionID connectionID,
                     93:     TNC_BufferReference sohrReportEntry,
                     94:     TNC_UInt32 sohrRELength,
                     95:     TNC_MessageType systemHealthID);
                     96: typedef TNC_Result (*TNC_IMC_ReceiveMessageLongPointer)(
                     97:     TNC_IMCID imcID,
                     98:     TNC_ConnectionID connectionID,
                     99:     TNC_UInt32 messageFlags,
                    100:     TNC_BufferReference message,
                    101:     TNC_UInt32 messageLength,
                    102:     TNC_VendorID messageVendorID,
                    103:     TNC_MessageSubtype messageSubtype,
                    104:     TNC_UInt32 sourceIMVID,
                    105:     TNC_UInt32 destinationIMCID);
                    106: typedef TNC_Result (*TNC_IMC_BatchEndingPointer)(
                    107:     TNC_IMCID imcID,
                    108:     TNC_ConnectionID connectionID);
                    109: typedef TNC_Result (*TNC_IMC_TerminatePointer)(
                    110:     TNC_IMCID imcID);
                    111: typedef TNC_Result (*TNC_TNCC_ReportMessageTypesPointer)(
                    112:     TNC_IMCID imcID,
                    113:     TNC_MessageTypeList supportedTypes,
                    114:     TNC_UInt32 typeCount);
                    115: typedef TNC_Result (*TNC_TNCC_ReportMessageTypesLongPointer)(
                    116:     TNC_IMCID imcID,
                    117:     TNC_VendorIDList supportedVendorIDs,
                    118:     TNC_MessageSubtypeList supportedSubtypes,
                    119:     TNC_UInt32 typeCount);
                    120: typedef TNC_Result (*TNC_TNCC_SendMessagePointer)(
                    121:     TNC_IMCID imcID,
                    122:     TNC_ConnectionID connectionID,
                    123:     TNC_BufferReference message,
                    124:     TNC_UInt32 messageLength,
                    125:     TNC_MessageType messageType);
                    126: typedef TNC_Result (*TNC_TNCC_SendMessageSOHPointer)(
                    127:     TNC_IMCID imcID,
                    128:     TNC_ConnectionID connectionID,
                    129:     TNC_BufferReference sohReportEntry,
                    130:     TNC_UInt32 sohRELength);
                    131: typedef TNC_Result (*TNC_TNCC_SendMessageLongPointer)(
                    132:     TNC_IMCID imcID,
                    133:     TNC_ConnectionID connectionID,
                    134:     TNC_UInt32 messageFlags,
                    135:     TNC_BufferReference message,
                    136:     TNC_UInt32 messageLength,
                    137:     TNC_VendorID messageVendorID,
                    138:     TNC_MessageSubtype messageSubtype,
                    139:     TNC_UInt32 destinationIMVID);
                    140: typedef TNC_Result (*TNC_TNCC_RequestHandshakeRetryPointer)(
                    141:     TNC_IMCID imcID,
                    142:     TNC_ConnectionID connectionID,
                    143:     TNC_RetryReason reason);
                    144: typedef TNC_Result (*TNC_TNCC_GetAttributePointer)(
                    145:     TNC_IMCID imcID,
                    146:     TNC_ConnectionID connectionID,
                    147:     TNC_AttributeID attributeID,
                    148:     TNC_UInt32 bufferLength,
                    149:     TNC_BufferReference buffer,
                    150:     TNC_UInt32 *pOutValueLength);
                    151: typedef TNC_Result (*TNC_TNCC_SetAttributePointer)(
                    152:     TNC_IMCID imcID,
                    153:     TNC_ConnectionID connectionID,
                    154:     TNC_AttributeID attributeID,
                    155:     TNC_UInt32 bufferLength,
                    156:     TNC_BufferReference buffer);
                    157: typedef TNC_Result (*TNC_TNCC_ReserveAdditionalIMCIDPointer)(
                    158:     TNC_IMCID imcID,
                    159:     TNC_UInt32 *pOutIMCID);
                    160: typedef TNC_Result (*TNC_TNCC_BindFunctionPointer)(
                    161:     TNC_IMCID imcID,
                    162:     char *functionName,
                    163:     void **pOutfunctionPointer);
                    164: typedef TNC_Result (*TNC_IMC_ProvideBindFunctionPointer)(
                    165:     TNC_IMCID imcID,
                    166:     TNC_TNCC_BindFunctionPointer bindFunction);
                    167: 
                    168: /* Version Numbers */
                    169: 
                    170: #define TNC_IFIMC_VERSION_1 1
                    171: 
                    172: /* Handshake Retry Reason Values */
                    173: 
                    174: #define TNC_RETRY_REASON_IMC_REMEDIATION_COMPLETE 0
                    175: #define TNC_RETRY_REASON_IMC_SERIOUS_EVENT 1
                    176: #define TNC_RETRY_REASON_IMC_INFORMATIONAL_EVENT 2
                    177: #define TNC_RETRY_REASON_IMC_PERIODIC 3
                    178: /* reserved for TNC_RETRY_REASON_IMV_IMPORTANT_POLICY_CHANGE: 4 */
                    179: /* reserved for TNC_RETRY_REASON_IMV_MINOR_POLICY_CHANGE: 5 */
                    180: /* reserved for TNC_RETRY_REASON_IMV_SERIOUS_EVENT: 6 */
                    181: /* reserved for TNC_RETRY_REASON_IMV_MINOR_EVENT: 7 */
                    182: /* reserved for TNC_RETRY_REASON_IMV_PERIODIC: 8 */
                    183: 
                    184: /* Message Attribute ID Values */
                    185: 
                    186: #define TNC_ATTRIBUTEID_SOHR ((TNC_AttributeID) 0x00559708)
                    187: #define TNC_ATTRIBUTEID_SSOHR ((TNC_AttributeID) 0x00559709)
                    188: #define TNC_ATTRIBUTEID_PRIMARY_IMC_ID ((TNC_AttributeID) 0x00559711)
                    189: 
                    190: /* IMC Functions */
                    191: 
                    192: TNC_IMC_API TNC_Result TNC_IMC_Initialize(
                    193: /*in*/  TNC_IMCID imcID,
                    194: /*in*/  TNC_Version minVersion,
                    195: /*in*/  TNC_Version maxVersion,
                    196: /*out*/ TNC_Version *pOutActualVersion);
                    197: 
                    198: TNC_IMC_API TNC_Result TNC_IMC_NotifyConnectionChange(
                    199: /*in*/  TNC_IMCID imcID,
                    200: /*in*/  TNC_ConnectionID connectionID,
                    201: /*in*/  TNC_ConnectionState newState);
                    202: 
                    203: TNC_IMC_API TNC_Result TNC_IMC_BeginHandshake(
                    204: /*in*/  TNC_IMCID imcID,
                    205: /*in*/  TNC_ConnectionID connectionID);
                    206: 
                    207: TNC_IMC_API TNC_Result TNC_IMC_ReceiveMessage(
                    208: /*in*/  TNC_IMCID imcID,
                    209: /*in*/  TNC_ConnectionID connectionID,
                    210: /*in*/  TNC_BufferReference messageBuffer,
                    211: /*in*/  TNC_UInt32 messageLength,
                    212: /*in*/  TNC_MessageType messageType);
                    213: 
                    214: TNC_IMC_API TNC_Result TNC_IMC_ReceiveMessageSOH(
                    215: /*in*/  TNC_IMCID imcID,
                    216: /*in*/  TNC_ConnectionID connectionID,
                    217: /*in*/  TNC_BufferReference sohrReportEntry,
                    218: /*in*/  TNC_UInt32 sohrRELength,
                    219: /*in*/  TNC_MessageType systemHealthID);
                    220: 
                    221: TNC_IMC_API TNC_Result TNC_IMC_ReceiveMessageLong(
                    222: /*in*/  TNC_IMCID imcID,
                    223: /*in*/  TNC_ConnectionID connectionID,
                    224: /*in*/  TNC_UInt32 messageFlags,
                    225: /*in*/  TNC_BufferReference message,
                    226: /*in*/  TNC_UInt32 messageLength,
                    227: /*in*/  TNC_VendorID messageVendorID,
                    228: /*in*/  TNC_MessageSubtype messageSubtype,
                    229: /*in*/  TNC_UInt32 sourceIMVID,
                    230: /*in*/  TNC_UInt32 destinationIMCID);
                    231: 
                    232: TNC_IMC_API TNC_Result TNC_IMC_BatchEnding(
                    233: /*in*/  TNC_IMCID imcID,
                    234: /*in*/  TNC_ConnectionID connectionID);
                    235: 
                    236: TNC_IMC_API TNC_Result TNC_IMC_Terminate(
                    237: /*in*/  TNC_IMCID imcID);
                    238: 
                    239: TNC_IMC_API TNC_Result TNC_IMC_ProvideBindFunction(
                    240: /*in*/  TNC_IMCID imcID,
                    241: /*in*/  TNC_TNCC_BindFunctionPointer bindFunction);
                    242: 
                    243: /* TNC Client Functions */
                    244: 
                    245: TNC_Result TNC_TNCC_ReportMessageTypes(
                    246: /*in*/  TNC_IMCID imcID,
                    247: /*in*/  TNC_MessageTypeList supportedTypes,
                    248: /*in*/  TNC_UInt32 typeCount);
                    249: 
                    250: TNC_Result TNC_TNCC_ReportMessageTypesLong(
                    251: /*in*/  TNC_IMCID imcID,
                    252: /*in*/  TNC_VendorIDList supportedVendorIDs,
                    253: /*in*/  TNC_MessageSubtypeList supportedSubtypes,
                    254: /*in*/  TNC_UInt32 typeCount);
                    255: 
                    256: TNC_Result TNC_TNCC_SendMessage(
                    257: /*in*/  TNC_IMCID imcID,
                    258: /*in*/  TNC_ConnectionID connectionID,
                    259: /*in*/  TNC_BufferReference message,
                    260: /*in*/  TNC_UInt32 messageLength,
                    261: /*in*/  TNC_MessageType messageType);
                    262: 
                    263: TNC_Result TNC_TNCC_SendMessageSOH(
                    264: /*in*/  TNC_IMCID imcID,
                    265: /*in*/  TNC_ConnectionID connectionID,
                    266: /*in*/  TNC_BufferReference sohReportEntry,
                    267: /*in*/  TNC_UInt32 sohRELength);
                    268: 
                    269: TNC_Result TNC_TNCC_SendMessageLong(
                    270: /*in*/  TNC_IMCID imcID,
                    271: /*in*/  TNC_ConnectionID connectionID,
                    272: /*in*/  TNC_UInt32 messageFlags,
                    273: /*in*/  TNC_BufferReference message,
                    274: /*in*/  TNC_UInt32 messageLength,
                    275: /*in*/  TNC_VendorID messageVendorID,
                    276: /*in*/  TNC_MessageSubtype messageSubtype,
                    277: /*in*/  TNC_UInt32 destinationIMVID);
                    278: TNC_Result TNC_TNCC_RequestHandshakeRetry(
                    279: /*in*/  TNC_IMCID imcID,
                    280: /*in*/  TNC_ConnectionID connectionID,
                    281: /*in*/  TNC_RetryReason reason);
                    282: 
                    283: TNC_Result TNC_TNCC_GetAttribute(
                    284: /*in*/  TNC_IMCID imcID,
                    285: /*in*/  TNC_ConnectionID connectionID,
                    286: /*in*/  TNC_AttributeID attributeID,
                    287: /*in*/  TNC_UInt32 bufferLength,
                    288: /*out*/ TNC_BufferReference buffer,
                    289: /*out*/ TNC_UInt32 *pOutValueLength);
                    290: 
                    291: TNC_Result TNC_TNCC_SetAttribute(
                    292: /*in*/  TNC_IMCID imcID,
                    293: /*in*/  TNC_ConnectionID connectionID,
                    294: /*in*/  TNC_AttributeID attributeID,
                    295: /*in*/  TNC_UInt32 bufferLength,
                    296: /*in*/  TNC_BufferReference buffer);
                    297: 
                    298: TNC_Result TNC_TNCS_ReserveAdditionalIMCID(
                    299: /*in*/  TNC_IMCID imcID,
                    300: /*out*/ TNC_UInt32 *pOutIMCID);
                    301: 
                    302: TNC_Result TNC_TNCC_BindFunction(
                    303: /*in*/  TNC_IMCID imcID,
                    304: /*in*/  char *functionName,
                    305: /*out*/ void **pOutfunctionPointer);
                    306: 
                    307: #endif /** TNCIFIMC_H_ @}*/

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>