123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- /* tncifimv.h
- *
- * Trusted Network Connect IF-IMV API version 1.30
- * Microsoft Windows DLL Platform Binding C Header
- * October 14, 2011
- *
- * Copyright(c) 2005-2011, Trusted Computing Group, Inc. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * o Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * o Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * o Neither the name of the Trusted Computing Group nor the names of
- * its contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * Contact the Trusted Computing Group at
- * admin@trustedcomputinggroup.org for information on specification
- * licensing through membership agreements.
- *
- * Any marks and brands contained herein are the property of their
- * respective owners.
- */
- /**
- * @defgroup tncifimv tncifimv
- * @{ @ingroup libtncif
- */
- #ifndef TNCIFIMV_H_
- #define TNCIFIMV_H_
- #include "tncif.h"
- #ifdef WIN32
- #ifdef TNC_IMV_EXPORTS
- #define TNC_IMV_API __declspec(dllexport)
- #else
- #define TNC_IMV_API __declspec(dllimport)
- #endif
- #else
- #define TNC_IMV_API
- #endif
- /* Derived Types */
- typedef TNC_UInt32 TNC_IMVID;
- typedef TNC_UInt32 TNC_IMV_Action_Recommendation;
- typedef TNC_UInt32 TNC_IMV_Evaluation_Result;
- /* Function pointers */
- typedef TNC_Result (*TNC_IMV_InitializePointer)(
- TNC_IMVID imvID,
- TNC_Version minVersion,
- TNC_Version maxVersion,
- TNC_Version *pOutActualVersion);
- typedef TNC_Result (*TNC_IMV_NotifyConnectionChangePointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_ConnectionState newState);
- typedef TNC_Result (*TNC_IMV_ReceiveMessagePointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_BufferReference message,
- TNC_UInt32 messageLength,
- TNC_MessageType messageType);
- typedef TNC_Result (*TNC_IMV_ReceiveMessageSOHPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_BufferReference sohReportEntry,
- TNC_UInt32 sohRELength,
- TNC_MessageType systemHealthID);
- typedef TNC_Result (*TNC_IMV_ReceiveMessageLongPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_UInt32 messageFlags,
- TNC_BufferReference message,
- TNC_UInt32 messageLength,
- TNC_VendorID messageVendorID,
- TNC_MessageSubtype messageSubtype,
- TNC_UInt32 sourceIMCID,
- TNC_UInt32 destinationIMVID);
- typedef TNC_Result (*TNC_IMV_SolicitRecommendationPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID);
- typedef TNC_Result (*TNC_IMV_BatchEndingPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID);
- typedef TNC_Result (*TNC_IMV_TerminatePointer)(
- TNC_IMVID imvID);
- typedef TNC_Result (*TNC_TNCS_ReportMessageTypesPointer)(
- TNC_IMVID imvID,
- TNC_MessageTypeList supportedTypes,
- TNC_UInt32 typeCount);
- typedef TNC_Result (*TNC_TNCS_ReportMessageTypesLongPointer)(
- TNC_IMVID imvID,
- TNC_VendorIDList supportedVendorIDs,
- TNC_MessageSubtypeList supportedSubtypes,
- TNC_UInt32 typeCount);
- typedef TNC_Result (*TNC_TNCS_SendMessagePointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_BufferReference message,
- TNC_UInt32 messageLength,
- TNC_MessageType messageType);
- typedef TNC_Result (*TNC_TNCS_SendMessageSOHPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_BufferReference sohrReportEntry,
- TNC_UInt32 sohrRELength);
- typedef TNC_Result (*TNC_TNCS_SendMessageLongPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_UInt32 messageFlags,
- TNC_BufferReference message,
- TNC_UInt32 messageLength,
- TNC_VendorID messageVendorID,
- TNC_MessageSubtype messageSubtype,
- TNC_UInt32 destinationIMCID);
- typedef TNC_Result (*TNC_TNCS_RequestHandshakeRetryPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_RetryReason reason);
- typedef TNC_Result (*TNC_TNCS_ProvideRecommendationPointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_IMV_Action_Recommendation recommendation,
- TNC_IMV_Evaluation_Result evaluation);
- typedef TNC_Result (*TNC_TNCS_GetAttributePointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_AttributeID attributeID,
- TNC_UInt32 bufferLength,
- TNC_BufferReference buffer,
- TNC_UInt32 *pOutValueLength);
- typedef TNC_Result (*TNC_TNCS_SetAttributePointer)(
- TNC_IMVID imvID,
- TNC_ConnectionID connectionID,
- TNC_AttributeID attributeID,
- TNC_UInt32 bufferLength,
- TNC_BufferReference buffer);
- typedef TNC_Result (*TNC_TNCS_ReserveAdditionalIMVIDPointer)(
- TNC_IMVID imvID,
- TNC_UInt32 *pOutIMVID);
- typedef TNC_Result (*TNC_TNCS_BindFunctionPointer)(
- TNC_IMVID imvID,
- char *functionName,
- void **pOutfunctionPointer);
- typedef TNC_Result (*TNC_IMV_ProvideBindFunctionPointer)(
- TNC_IMVID imvID,
- TNC_TNCS_BindFunctionPointer bindFunction);
- /* Version Numbers */
- #define TNC_IFIMV_VERSION_1 1
- /* Handshake Retry Reason Values */
- /* reserved for TNC_RETRY_REASON_IMC_REMEDIATION_COMPLETE: 0 */
- /* reserved for TNC_RETRY_REASON_IMC_SERIOUS_EVENT: 1 */
- /* reserved for TNC_RETRY_REASON_IMC_INFORMATIONAL_EVENT: 2 */
- /* reserved for TNC_RETRY_REASON_IMC_PERIODIC: 3 */
- #define TNC_RETRY_REASON_IMV_IMPORTANT_POLICY_CHANGE 4
- #define TNC_RETRY_REASON_IMV_MINOR_POLICY_CHANGE 5
- #define TNC_RETRY_REASON_IMV_SERIOUS_EVENT 6
- #define TNC_RETRY_REASON_IMV_MINOR_EVENT 7
- #define TNC_RETRY_REASON_IMV_PERIODIC 8
- /* IMV Action Recommendation Values */
- #define TNC_IMV_ACTION_RECOMMENDATION_ALLOW 0
- #define TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS 1
- #define TNC_IMV_ACTION_RECOMMENDATION_ISOLATE 2
- #define TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION 3
- /* IMV Evaluation Result Values */
- #define TNC_IMV_EVALUATION_RESULT_COMPLIANT 0
- #define TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR 1
- #define TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR 2
- #define TNC_IMV_EVALUATION_RESULT_ERROR 3
- #define TNC_IMV_EVALUATION_RESULT_DONT_KNOW 4
- /* Message Attribute ID Values */
- #define TNC_ATTRIBUTEID_REASON_STRING ((TNC_AttributeID) 0x00000002)
- #define TNC_ATTRIBUTEID_REASON_LANGUAGE ((TNC_AttributeID) 0x00000003)
- #define TNC_ATTRIBUTEID_SOH ((TNC_AttributeID) 0x00559706)
- #define TNC_ATTRIBUTEID_SSOH ((TNC_AttributeID) 0x00559707)
- #define TNC_ATTRIBUTEID_PRIMARY_IMV_ID ((TNC_AttributeID) 0x00559710)
- #define TNC_ATTRIBUTEID_AR_IDENTITIES ((TNC_AttributeID) 0x00559712)
- /* TNC Identity Types */
- #define TNC_ID_UNKNOWN 0
- #define TNC_ID_IPV4_ADDR 1
- #define TNC_ID_IPV6_ADDR 2
- #define TNC_ID_FQDN 3
- #define TNC_ID_EMAIL_ADDR 4
- #define TNC_ID_USERNAME 5
- #define TNC_ID_X500_DN 6
- /* TNC Subject Types */
- #define TNC_SUBJECT_UNKNOWN 0
- #define TNC_SUBJECT_MACHINE 1
- #define TNC_SUBJECT_USER 2
- /* TNC Authentication Types */
- #define TNC_AUTH_UNKNOWN 0
- #define TNC_AUTH_X509_CERT 1
- #define TNC_AUTH_PASSWORD 2
- #define TNC_AUTH_SIM 3
- /* IMV Functions */
- TNC_IMV_API TNC_Result TNC_IMV_Initialize(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_Version minVersion,
- /*in*/ TNC_Version maxVersion,
- /*in*/ TNC_Version *pOutActualVersion);
- TNC_IMV_API TNC_Result TNC_IMV_NotifyConnectionChange(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_ConnectionState newState);
- TNC_IMV_API TNC_Result TNC_IMV_ReceiveMessage(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_BufferReference messageBuffer,
- /*in*/ TNC_UInt32 messageLength,
- /*in*/ TNC_MessageType messageType);
- TNC_IMV_API TNC_Result TNC_IMV_ReceiveMessageSOH(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_BufferReference sohReportEntry,
- /*in*/ TNC_UInt32 sohRELength,
- /*in*/ TNC_MessageType systemHealthID);
- TNC_IMV_API TNC_Result TNC_IMV_ReceiveMessageLong(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_UInt32 messageFlags,
- /*in*/ TNC_BufferReference message,
- /*in*/ TNC_UInt32 messageLength,
- /*in*/ TNC_VendorID messageVendorID,
- /*in*/ TNC_MessageSubtype messageSubtype,
- /*in*/ TNC_UInt32 sourceIMCID,
- /*in*/ TNC_UInt32 destinationIMVID);
- TNC_IMV_API TNC_Result TNC_IMV_SolicitRecommendation(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID);
- TNC_IMV_API TNC_Result TNC_IMV_BatchEnding(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID);
- TNC_IMV_API TNC_Result TNC_IMV_Terminate(
- /*in*/ TNC_IMVID imvID);
- TNC_IMV_API TNC_Result TNC_IMV_ProvideBindFunction(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_TNCS_BindFunctionPointer bindFunction);
- /* TNC Server Functions */
- TNC_Result TNC_TNCS_ReportMessageTypes(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_MessageTypeList supportedTypes,
- /*in*/ TNC_UInt32 typeCount);
- TNC_Result TNC_TNCS_ReportMessageTypesLong(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_VendorIDList supportedVendorIDs,
- /*in*/ TNC_MessageSubtypeList supportedSubtypes,
- /*in*/ TNC_UInt32 typeCount);
- TNC_Result TNC_TNCS_SendMessage(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_BufferReference message,
- /*in*/ TNC_UInt32 messageLength,
- /*in*/ TNC_MessageType messageType);
- TNC_Result TNC_TNCS_SendMessageSOH(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_BufferReference sohrReportEntry,
- /*in*/ TNC_UInt32 sohrRELength);
- TNC_Result TNC_TNCS_SendMessageLong(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_UInt32 messageFlags,
- /*in*/ TNC_BufferReference message,
- /*in*/ TNC_UInt32 messageLength,
- /*in*/ TNC_VendorID messageVendorID,
- /*in*/ TNC_MessageSubtype messageSubtype,
- /*in*/ TNC_UInt32 destinationIMCID);
- TNC_Result TNC_TNCS_RequestHandshakeRetry(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_RetryReason reason);
- TNC_Result TNC_TNCS_ProvideRecommendation(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_IMV_Action_Recommendation recommendation,
- /*in*/ TNC_IMV_Evaluation_Result evaluation);
- TNC_Result TNC_TNCS_GetAttribute(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_AttributeID attributeID,
- /*in*/ TNC_UInt32 bufferLength,
- /*out*/ TNC_BufferReference buffer,
- /*out*/ TNC_UInt32 *pOutValueLength);
- TNC_Result TNC_TNCS_ReserveAdditionalIMVID(
- /*in*/ TNC_IMVID imvID,
- /*out*/ TNC_UInt32 *pOutIMVID);
- TNC_Result TNC_TNCS_SetAttribute(
- /*in*/ TNC_IMVID imvID,
- /*in*/ TNC_ConnectionID connectionID,
- /*in*/ TNC_AttributeID attributeID,
- /*in*/ TNC_UInt32 bufferLength,
- /*in*/ TNC_BufferReference buffer);
- TNC_Result TNC_TNCS_BindFunction(
- /*in*/ TNC_IMVID imvID,
- /*in*/ char *functionName,
- /*in*/ void **pOutfunctionPointer);
- #endif /** TNCIFIMV_H_ @}*/
|