diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-06-01 16:32:01 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-06-01 16:33:44 +0200 |
commit | 7c4d4d209d2828a726db6b916bc69b7d3b08cc2c (patch) | |
tree | 414524cbdd1607a8830ac5c2901c50f353796ef3 /src/libcharon/tnc | |
parent | 91b9bc3e0f2ca4bbec636307e5ffa5e7c0803df3 (diff) | |
download | strongswan-7c4d4d209d2828a726db6b916bc69b7d3b08cc2c.tar.bz2 strongswan-7c4d4d209d2828a726db6b916bc69b7d3b08cc2c.tar.xz |
make IMC/IMV pairs independent of libcharon
Diffstat (limited to 'src/libcharon/tnc')
-rw-r--r-- | src/libcharon/tnc/imc/imc.h | 3 | ||||
-rw-r--r-- | src/libcharon/tnc/imv/imv.h | 3 | ||||
-rw-r--r-- | src/libcharon/tnc/imv/imv_recommendations.h | 2 | ||||
-rw-r--r-- | src/libcharon/tnc/pen/pen.c | 33 | ||||
-rw-r--r-- | src/libcharon/tnc/pen/pen.h | 46 | ||||
-rw-r--r-- | src/libcharon/tnc/tnccs/tnccs.h | 7 | ||||
-rw-r--r-- | src/libcharon/tnc/tncif.c | 27 | ||||
-rw-r--r-- | src/libcharon/tnc/tncif.h | 111 | ||||
-rw-r--r-- | src/libcharon/tnc/tncifimc.h | 180 | ||||
-rw-r--r-- | src/libcharon/tnc/tncifimv.c | 36 | ||||
-rw-r--r-- | src/libcharon/tnc/tncifimv.h | 248 |
11 files changed, 9 insertions, 687 deletions
diff --git a/src/libcharon/tnc/imc/imc.h b/src/libcharon/tnc/imc/imc.h index fe8f25b0f..ddedf714c 100644 --- a/src/libcharon/tnc/imc/imc.h +++ b/src/libcharon/tnc/imc/imc.h @@ -24,7 +24,8 @@ #ifndef IMC_H_ #define IMC_H_ -#include <tnc/tncifimc.h> +#include <tncifimc.h> + #include <library.h> typedef struct imc_t imc_t; diff --git a/src/libcharon/tnc/imv/imv.h b/src/libcharon/tnc/imv/imv.h index 26874ab0b..df338d40a 100644 --- a/src/libcharon/tnc/imv/imv.h +++ b/src/libcharon/tnc/imv/imv.h @@ -24,7 +24,8 @@ #ifndef IMV_H_ #define IMV_H_ -#include <tnc/tncifimv.h> +#include <tncifimv.h> + #include <library.h> typedef struct imv_t imv_t; diff --git a/src/libcharon/tnc/imv/imv_recommendations.h b/src/libcharon/tnc/imv/imv_recommendations.h index 3a6e25c9f..071b6b38a 100644 --- a/src/libcharon/tnc/imv/imv_recommendations.h +++ b/src/libcharon/tnc/imv/imv_recommendations.h @@ -21,7 +21,7 @@ #ifndef IMV_RECOMMENDATIONS_H_ #define IMV_RECOMMENDATIONS_H_ -#include <tnc/tncifimv.h> +#include <tncifimv.h> #include <library.h> typedef enum recommendation_policy_t recommendation_policy_t; diff --git a/src/libcharon/tnc/pen/pen.c b/src/libcharon/tnc/pen/pen.c deleted file mode 100644 index 3dd92218d..000000000 --- a/src/libcharon/tnc/pen/pen.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2011 Andreas Steffen - * HSR Hochschule fuer Technik Rapperswil - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "pen.h" - -ENUM_BEGIN(pen_names, PEN_IETF, PEN_IETF, - "IETF"); -ENUM_NEXT(pen_names, PEN_MICROSOFT, PEN_MICROSOFT, PEN_IETF, - "Microsoft"); -ENUM_NEXT(pen_names, PEN_OSC, PEN_OSC, PEN_MICROSOFT, - "OSC"); -ENUM_NEXT(pen_names, PEN_TCG, PEN_TCG, PEN_OSC, - "TCG"); -ENUM_NEXT(pen_names, PEN_FHH, PEN_FHH, PEN_TCG, - "FHH"); -ENUM_NEXT(pen_names, PEN_ITA, PEN_ITA, PEN_FHH, - "ITA-HSR"); -ENUM_NEXT(pen_names, PEN_RESERVED, PEN_RESERVED, PEN_ITA, - "Reserved"); -ENUM_END(pen_names, PEN_RESERVED); - diff --git a/src/libcharon/tnc/pen/pen.h b/src/libcharon/tnc/pen/pen.h deleted file mode 100644 index e6eb7fc53..000000000 --- a/src/libcharon/tnc/pen/pen.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2011 Andreas Steffen - * HSR Hochschule fuer Technik Rapperswil - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -/** - * @defgroup pen pen - * @ingroup tnc - * - * @defgroup pent pen - * @{ @ingroup pen - */ - -#ifndef PEN_H_ -#define PEN_H_ - -#include <library.h> - -typedef enum pen_t pen_t; - -enum pen_t { - PEN_IETF = 0x000000, /* 0 */ - PEN_MICROSOFT = 0x000137, /* 311 */ - PEN_OSC = 0x002358, /* 9048 */ - PEN_TCG = 0x005597, /* 21911 */ - PEN_FHH = 0x0080ab, /* 32939 */ - PEN_ITA = 0x00902a, /* 36906 */ - PEN_RESERVED = 0xffffff, /* 16777215 */ -}; - -/** - * enum names for pen_t. - */ -extern enum_name_t *pen_names; - -#endif /** PEN_H_ @}*/ diff --git a/src/libcharon/tnc/tnccs/tnccs.h b/src/libcharon/tnc/tnccs/tnccs.h index f97282ce9..dc8a422f7 100644 --- a/src/libcharon/tnc/tnccs/tnccs.h +++ b/src/libcharon/tnc/tnccs/tnccs.h @@ -24,9 +24,10 @@ #ifndef TNCCS_H_ #define TNCCS_H_ -#include <tnc/tncif.h> -#include <tnc/tncifimc.h> -#include <tnc/tncifimv.h> +#include <tncif.h> +#include <tncifimc.h> +#include <tncifimv.h> + #include <library.h> typedef enum tnccs_type_t tnccs_type_t; diff --git a/src/libcharon/tnc/tncif.c b/src/libcharon/tnc/tncif.c deleted file mode 100644 index b195685a3..000000000 --- a/src/libcharon/tnc/tncif.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2011 Andreas Steffen - * HSR Hochschule fuer Technik Rapperswil - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "tncif.h" - -ENUM(TNC_Connection_State_names, - TNC_CONNECTION_STATE_CREATE, TNC_CONNECTION_STATE_DELETE, - "Create", - "Handshake", - "Allowed", - "Isolated", - "None", - "Delete", -); - diff --git a/src/libcharon/tnc/tncif.h b/src/libcharon/tnc/tncif.h deleted file mode 100644 index 42a0232c7..000000000 --- a/src/libcharon/tnc/tncif.h +++ /dev/null @@ -1,111 +0,0 @@ -/* tncif.h - * - * Trusted Network Connect IF-IMV API version 1.20 - * Microsoft Windows DLL Platform Binding C Header - * February 5, 2007 - * - * Copyright(c) 2005-2007, 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: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - 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. - * - 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. - * - * Trusted Network Connect IF-IMC/IF-IMV API version 1.00 Revision 3 - * Microsoft Windows DLL Platform Binding C Header - * Common definitions for IF-IMC and IF-IMV - * extracted from tncifimc.h and tncifimv.h - * Feb 12, 2007 - */ - -/** - * @defgroup tnc tnc - * @ingroup libcharon - * - * @defgroup tncif tncif - * @{ @ingroup tnc - */ - -#ifndef TNCIF_H_ -#define TNCIF_H_ - -#include <library.h> - -/* Basic Types */ -typedef unsigned long TNC_UInt32; -typedef unsigned char *TNC_BufferReference; - -/* Derived Types */ -typedef TNC_UInt32 TNC_ConnectionID; -typedef TNC_UInt32 TNC_ConnectionState; -typedef TNC_UInt32 TNC_RetryReason; -typedef TNC_UInt32 TNC_MessageType; -typedef TNC_MessageType *TNC_MessageTypeList; -typedef TNC_UInt32 TNC_VendorID; -typedef TNC_UInt32 TNC_MessageSubtype; -typedef TNC_UInt32 TNC_Version; -typedef TNC_UInt32 TNC_Result; - -/* Result Codes */ -#define TNC_RESULT_SUCCESS 0 -#define TNC_RESULT_NOT_INITIALIZED 1 -#define TNC_RESULT_ALREADY_INITIALIZED 2 -#define TNC_RESULT_NO_COMMON_VERSION 3 -#define TNC_RESULT_CANT_RETRY 4 -#define TNC_RESULT_WONT_RETRY 5 -#define TNC_RESULT_INVALID_PARAMETER 6 -#define TNC_RESULT_CANT_RESPOND 7 -#define TNC_RESULT_ILLEGAL_OPERATION 8 -#define TNC_RESULT_OTHER 9 -#define TNC_RESULT_FATAL 10 - -/* Network Connection ID Values */ -#define TNC_CONNECTIONID_ANY 0xFFFFFFFF - -/* Network Connection State Values */ -#define TNC_CONNECTION_STATE_CREATE 0 -#define TNC_CONNECTION_STATE_HANDSHAKE 1 -#define TNC_CONNECTION_STATE_ACCESS_ALLOWED 2 -#define TNC_CONNECTION_STATE_ACCESS_ISOLATED 3 -#define TNC_CONNECTION_STATE_ACCESS_NONE 4 -#define TNC_CONNECTION_STATE_DELETE 5 - -extern enum_name_t *TNC_Connection_State_names; - -/* Vendor ID Values */ -#define TNC_VENDORID_TCG 0 -#define TNC_VENDORID_ANY ((TNC_VendorID) 0xffffff) -/* Message Subtype Values */ -#define TNC_SUBTYPE_ANY ((TNC_MessageSubtype) 0xff) - -#endif /** TNCIF_H_ @}*/ diff --git a/src/libcharon/tnc/tncifimc.h b/src/libcharon/tnc/tncifimc.h deleted file mode 100644 index c6ddabd45..000000000 --- a/src/libcharon/tnc/tncifimc.h +++ /dev/null @@ -1,180 +0,0 @@ -/* tncifimc.h - * - * Trusted Network Connect IF-IMC API version 1.20 Revision 8 - * Microsoft Windows DLL Platform Binding C Header - * February 5, 2007 - * - * Copyright(c) 2005-2007, 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: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - 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. - * - 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 tncifimc tncifimc - * @{ @ingroup tnc - */ - -#ifndef TNCIFIMC_H_ -#define TNCIFIMC_H_ - -#include "tncif.h" - -/* Derived Types */ - -typedef TNC_UInt32 TNC_IMCID; - -/* Function pointers */ - -typedef TNC_Result (*TNC_IMC_InitializePointer)( - TNC_IMCID imcID, - TNC_Version minVersion, - TNC_Version maxVersion, - TNC_Version *pOutActualVersion); -typedef TNC_Result (*TNC_IMC_NotifyConnectionChangePointer)( - TNC_IMCID imcID, - TNC_ConnectionID connectionID, - TNC_ConnectionState newState); -typedef TNC_Result (*TNC_IMC_BeginHandshakePointer)( - TNC_IMCID imcID, - TNC_ConnectionID connectionID); -typedef TNC_Result (*TNC_IMC_ReceiveMessagePointer)( - TNC_IMCID imcID, - TNC_ConnectionID connectionID, - TNC_BufferReference message, - TNC_UInt32 messageLength, - TNC_MessageType messageType); -typedef TNC_Result (*TNC_IMC_BatchEndingPointer)( - TNC_IMCID imcID, - TNC_ConnectionID connectionID); -typedef TNC_Result (*TNC_IMC_TerminatePointer)( - TNC_IMCID imcID); -typedef TNC_Result (*TNC_TNCC_ReportMessageTypesPointer)( - TNC_IMCID imcID, - TNC_MessageTypeList supportedTypes, - TNC_UInt32 typeCount); -typedef TNC_Result (*TNC_TNCC_SendMessagePointer)( - TNC_IMCID imcID, - TNC_ConnectionID connectionID, - TNC_BufferReference message, - TNC_UInt32 messageLength, - TNC_MessageType messageType); -typedef TNC_Result (*TNC_TNCC_RequestHandshakeRetryPointer)( - TNC_IMCID imcID, - TNC_ConnectionID connectionID, - TNC_RetryReason reason); -typedef TNC_Result (*TNC_TNCC_BindFunctionPointer)( - TNC_IMCID imcID, - char *functionName, - void **pOutfunctionPointer); -typedef TNC_Result (*TNC_IMC_ProvideBindFunctionPointer)( - TNC_IMCID imcID, - TNC_TNCC_BindFunctionPointer bindFunction); - -#define TNC_IFIMC_VERSION_1 1 - -/* Handshake Retry Reason Values */ - -#define TNC_RETRY_REASON_IMC_REMEDIATION_COMPLETE 0 -#define TNC_RETRY_REASON_IMC_SERIOUS_EVENT 1 -#define TNC_RETRY_REASON_IMC_INFORMATIONAL_EVENT 2 -#define TNC_RETRY_REASON_IMC_PERIODIC 3 -/* reserved for TNC_RETRY_REASON_IMV_IMPORTANT_POLICY_CHANGE: 4 */ -/* reserved for TNC_RETRY_REASON_IMV_MINOR_POLICY_CHANGE: 5 */ -/* reserved for TNC_RETRY_REASON_IMV_SERIOUS_EVENT: 6 */ -/* reserved for TNC_RETRY_REASON_IMV_MINOR_EVENT: 7 */ -/* reserved for TNC_RETRY_REASON_IMV_PERIODIC: 8 */ - -/* IMC Functions */ - -TNC_Result TNC_IMC_Initialize( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_Version minVersion, -/*in*/ TNC_Version maxVersion, -/*out*/ TNC_Version *pOutActualVersion); - -TNC_Result TNC_IMC_NotifyConnectionChange( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_ConnectionID connectionID, -/*in*/ TNC_ConnectionState newState); - -TNC_Result TNC_IMC_BeginHandshake( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_ConnectionID connectionID); - -TNC_Result TNC_IMC_ReceiveMessage( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_ConnectionID connectionID, -/*in*/ TNC_BufferReference messageBuffer, -/*in*/ TNC_UInt32 messageLength, -/*in*/ TNC_MessageType messageType); - -TNC_Result TNC_IMC_BatchEnding( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_ConnectionID connectionID); - -TNC_Result TNC_IMC_Terminate( -/*in*/ TNC_IMCID imcID); - -TNC_Result TNC_IMC_ProvideBindFunction( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_TNCC_BindFunctionPointer bindFunction); - -/* TNC Client Functions */ - -TNC_Result TNC_TNCC_ReportMessageTypes( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_MessageTypeList supportedTypes, -/*in*/ TNC_UInt32 typeCount); - -TNC_Result TNC_TNCC_SendMessage( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_ConnectionID connectionID, -/*in*/ TNC_BufferReference message, -/*in*/ TNC_UInt32 messageLength, -/*in*/ TNC_MessageType messageType); - -TNC_Result TNC_TNCC_RequestHandshakeRetry( -/*in*/ TNC_IMCID imcID, -/*in*/ TNC_ConnectionID connectionID, -/*in*/ TNC_RetryReason reason); - -TNC_Result TNC_TNCC_BindFunction( -/*in*/ TNC_IMCID imcID, -/*in*/ char *functionName, -/*out*/ void **pOutfunctionPointer); - -#endif /** TNCIFIMC_H_ @}*/ diff --git a/src/libcharon/tnc/tncifimv.c b/src/libcharon/tnc/tncifimv.c deleted file mode 100644 index fbfd56566..000000000 --- a/src/libcharon/tnc/tncifimv.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2010 Andreas Steffen - * HSR Hochschule fuer Technik Rapperswil - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - */ - -#include "tncifimv.h" - -ENUM(TNC_IMV_Action_Recommendation_names, - TNC_IMV_ACTION_RECOMMENDATION_ALLOW, - TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION, - "allow", - "no access", - "isolate", - "no recommendation" -); - -ENUM(TNC_IMV_Evaluation_Result_names, - TNC_IMV_EVALUATION_RESULT_COMPLIANT, - TNC_IMV_EVALUATION_RESULT_DONT_KNOW, - "compliant", - "non-compliant minor", - "non-compliant major", - "error", - "don't know" -); - diff --git a/src/libcharon/tnc/tncifimv.h b/src/libcharon/tnc/tncifimv.h deleted file mode 100644 index 4ec101337..000000000 --- a/src/libcharon/tnc/tncifimv.h +++ /dev/null @@ -1,248 +0,0 @@ -/* tncifimv.h - * - * Trusted Network Connect IF-IMV API version 1.20 - * Microsoft Windows DLL Platform Binding C Header - * February 5, 2007 - * - * Copyright(c) 2005-2007, 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: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - 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. - * - 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 tnc - */ - -#ifndef TNCIFIMV_H_ -#define TNCIFIMV_H_ - -#include "tncif.h" - -#include <library.h> - -typedef TNC_UInt32 TNC_IMVID; -typedef TNC_UInt32 TNC_IMV_Action_Recommendation; -typedef TNC_UInt32 TNC_IMV_Evaluation_Result; -typedef TNC_UInt32 TNC_AttributeID; - -/* 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_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_SendMessagePointer)( - TNC_IMVID imvID, - TNC_ConnectionID connectionID, - TNC_BufferReference message, - TNC_UInt32 messageLength, - TNC_MessageType messageType); -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_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 - -extern enum_name_t *TNC_IMV_Action_Recommendation_names; - -/* 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 - -extern enum_name_t *TNC_IMV_Evaluation_Result_names; - -/* Message Attribute ID Values */ - -#define TNC_ATTRIBUTEID_PREFERRED_LANGUAGE ((TNC_AttributeID) 0x00000001) -#define TNC_ATTRIBUTEID_REASON_STRING ((TNC_AttributeID) 0x00000002) -#define TNC_ATTRIBUTEID_REASON_LANGUAGE ((TNC_AttributeID) 0x00000003) - -/* IMV Functions */ - -TNC_Result TNC_IMV_Initialize( -/*in*/ TNC_IMVID imvID, -/*in*/ TNC_Version minVersion, -/*in*/ TNC_Version maxVersion, -/*in*/ TNC_Version *pOutActualVersion); - -TNC_Result TNC_IMV_NotifyConnectionChange( -/*in*/ TNC_IMVID imvID, -/*in*/ TNC_ConnectionID connectionID, -/*in*/ TNC_ConnectionState newState); - -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_Result TNC_IMV_SolicitRecommendation( -/*in*/ TNC_IMVID imvID, -/*in*/ TNC_ConnectionID connectionID); - -TNC_Result TNC_IMV_BatchEnding( -/*in*/ TNC_IMVID imvID, -/*in*/ TNC_ConnectionID connectionID); - -TNC_Result TNC_IMV_Terminate( -/*in*/ TNC_IMVID imvID); - -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_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_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_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_ @}*/ |