tnc.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /*
  2. * TNC - Common defines
  3. * Copyright (c) 2007-2014, Jouni Malinen <j@w1.fi>
  4. *
  5. * This software may be distributed under the terms of the BSD license.
  6. * See README for more details.
  7. */
  8. #ifndef TNC_H
  9. #define TNC_H
  10. typedef unsigned long TNC_UInt32;
  11. typedef unsigned char *TNC_BufferReference;
  12. typedef TNC_UInt32 TNC_IMVID;
  13. typedef TNC_UInt32 TNC_IMCID;
  14. typedef TNC_UInt32 TNC_ConnectionID;
  15. typedef TNC_UInt32 TNC_ConnectionState;
  16. typedef TNC_UInt32 TNC_RetryReason;
  17. typedef TNC_UInt32 TNC_IMV_Action_Recommendation;
  18. typedef TNC_UInt32 TNC_IMV_Evaluation_Result;
  19. typedef TNC_UInt32 TNC_MessageType;
  20. typedef TNC_MessageType *TNC_MessageTypeList;
  21. typedef TNC_UInt32 TNC_VendorID;
  22. typedef TNC_UInt32 TNC_Subtype;
  23. typedef TNC_UInt32 TNC_MessageSubtype;
  24. typedef TNC_UInt32 TNC_Version;
  25. typedef TNC_UInt32 TNC_Result;
  26. typedef TNC_UInt32 TNC_AttributeID;
  27. typedef TNC_Result (*TNC_TNCS_BindFunctionPointer)(
  28. TNC_IMVID imvID,
  29. char *functionName,
  30. void **pOutfunctionPointer);
  31. typedef TNC_Result (*TNC_TNCS_ReportMessageTypesPointer)(
  32. TNC_IMVID imvID,
  33. TNC_MessageTypeList supportedTypes,
  34. TNC_UInt32 typeCount);
  35. typedef TNC_Result (*TNC_TNCS_SendMessagePointer)(
  36. TNC_IMVID imvID,
  37. TNC_ConnectionID connectionID,
  38. TNC_BufferReference message,
  39. TNC_UInt32 messageLength,
  40. TNC_MessageType messageType);
  41. typedef TNC_Result (*TNC_TNCS_RequestHandshakeRetryPointer)(
  42. TNC_IMVID imvID,
  43. TNC_ConnectionID connectionID,
  44. TNC_RetryReason reason);
  45. typedef TNC_Result (*TNC_TNCS_ProvideRecommendationPointer)(
  46. TNC_IMVID imvID,
  47. TNC_ConnectionID connectionID,
  48. TNC_IMV_Action_Recommendation recommendation,
  49. TNC_IMV_Evaluation_Result evaluation);
  50. typedef TNC_Result (*TNC_TNCC_BindFunctionPointer)(
  51. TNC_IMCID imcID,
  52. char *functionName,
  53. void **pOutfunctionPointer);
  54. typedef TNC_Result (*TNC_TNCC_SendMessagePointer)(
  55. TNC_IMCID imcID,
  56. TNC_ConnectionID connectionID,
  57. TNC_BufferReference message,
  58. TNC_UInt32 messageLength,
  59. TNC_MessageType messageType);
  60. typedef TNC_Result (*TNC_TNCC_ReportMessageTypesPointer)(
  61. TNC_IMCID imcID,
  62. TNC_MessageTypeList supportedTypes,
  63. TNC_UInt32 typeCount);
  64. typedef TNC_Result (*TNC_TNCC_RequestHandshakeRetryPointer)(
  65. TNC_IMCID imcID,
  66. TNC_ConnectionID connectionID,
  67. TNC_RetryReason reason);
  68. #define TNC_IFIMV_VERSION_1 1
  69. #define TNC_IFIMC_VERSION_1 1
  70. #define TNC_RESULT_SUCCESS 0
  71. #define TNC_RESULT_NOT_INITIALIZED 1
  72. #define TNC_RESULT_ALREADY_INITIALIZED 2
  73. #define TNC_RESULT_NO_COMMON_VERSION 3
  74. #define TNC_RESULT_CANT_RETRY 4
  75. #define TNC_RESULT_WONT_RETRY 5
  76. #define TNC_RESULT_INVALID_PARAMETER 6
  77. #define TNC_RESULT_CANT_RESPOND 7
  78. #define TNC_RESULT_ILLEGAL_OPERATION 8
  79. #define TNC_RESULT_OTHER 9
  80. #define TNC_RESULT_FATAL 10
  81. #define TNC_CONNECTION_STATE_CREATE 0
  82. #define TNC_CONNECTION_STATE_HANDSHAKE 1
  83. #define TNC_CONNECTION_STATE_ACCESS_ALLOWED 2
  84. #define TNC_CONNECTION_STATE_ACCESS_ISOLATED 3
  85. #define TNC_CONNECTION_STATE_ACCESS_NONE 4
  86. #define TNC_CONNECTION_STATE_DELETE 5
  87. #define TNC_VENDORID_ANY ((TNC_VendorID) 0xffffff)
  88. #define TNC_SUBTYPE_ANY ((TNC_Subtype) 0xff)
  89. /* TNCC-TNCS Message Types */
  90. #define TNC_TNCCS_RECOMMENDATION 0x00000001
  91. #define TNC_TNCCS_ERROR 0x00000002
  92. #define TNC_TNCCS_PREFERREDLANGUAGE 0x00000003
  93. #define TNC_TNCCS_REASONSTRINGS 0x00000004
  94. /* Possible TNC_IMV_Action_Recommendation values: */
  95. enum IMV_Action_Recommendation {
  96. TNC_IMV_ACTION_RECOMMENDATION_ALLOW,
  97. TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS,
  98. TNC_IMV_ACTION_RECOMMENDATION_ISOLATE,
  99. TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION
  100. };
  101. /* Possible TNC_IMV_Evaluation_Result values: */
  102. enum IMV_Evaluation_Result {
  103. TNC_IMV_EVALUATION_RESULT_COMPLIANT,
  104. TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR,
  105. TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR,
  106. TNC_IMV_EVALUATION_RESULT_ERROR,
  107. TNC_IMV_EVALUATION_RESULT_DONT_KNOW
  108. };
  109. #endif /* TNC_H */