eapol/eapol_framework/eapol_common/include/eap_process_tlv_message_data.h
branchRCL_3
changeset 19 c74b3d9f6b9e
parent 18 bad0cc58d154
equal deleted inserted replaced
18:bad0cc58d154 19:c74b3d9f6b9e
     1 /*
       
     2 * Copyright (c) 2001-2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  EAP and WLAN authentication protocols.
       
    15 *
       
    16 */
       
    17 
       
    18 /*
       
    19 * %version: 42 %
       
    20 */
       
    21 
       
    22 #if !defined(_EAP_PROCESS_TLV_MESSAGE_DATA_H_)
       
    23 #define _EAP_PROCESS_TLV_MESSAGE_DATA_H_
       
    24 
       
    25 #include "eap_am_types.h"
       
    26 #include "eap_tools.h"
       
    27 #include "eap_array.h"
       
    28 #include "eap_tlv_message_data.h"
       
    29 #include "eap_expanded_type.h"
       
    30 #include "eapol_rsna_key_header.h"
       
    31 #include "eap_method_settings.h"
       
    32 #include "eap_file_config.h"
       
    33 
       
    34 #if defined(USE_EAP_SIMPLE_CONFIG)
       
    35 #include "simple_config_types.h"
       
    36 #include "simple_config_credential.h"
       
    37 #include "simple_config_payloads.h"
       
    38 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
       
    39 
       
    40 enum eap_tlv_message_type_e
       
    41 {
       
    42 	eap_tlv_message_type_none                                 = 0,
       
    43 	eap_tlv_message_type_array                                = 1,
       
    44 	eap_tlv_message_type_boolean                              = 2,
       
    45 	eap_tlv_message_type_eap_protocol_layer                   = 3,
       
    46 	eap_tlv_message_type_eap_state_notification               = 4,
       
    47 	eap_tlv_message_type_eap_status                           = 5,
       
    48 	eap_tlv_message_type_eap_type                             = 6,
       
    49 	eap_tlv_message_type_eapol_key_802_11_authentication_mode = 7,
       
    50 	eap_tlv_message_type_eapol_key_authentication_type        = 8,
       
    51 	eap_tlv_message_type_eapol_key_type                       = 9,
       
    52 	eap_tlv_message_type_eapol_tkip_mic_failure_type          = 10,
       
    53 	eap_tlv_message_type_eapol_wlan_authentication_state      = 11,
       
    54 	eap_tlv_message_type_error                                = 12,
       
    55 	eap_tlv_message_type_function                             = 13,
       
    56 	eap_tlv_message_type_network_id                           = 14,
       
    57 	eap_tlv_message_type_network_key                          = 15,
       
    58 	eap_tlv_message_type_protected_setup_credential           = 16,
       
    59 	eap_tlv_message_type_RSNA_cipher                          = 17,
       
    60 	eap_tlv_message_type_session_key                          = 18,
       
    61 	eap_tlv_message_type_u8_t                                 = 19,
       
    62 	eap_tlv_message_type_u16_t                                = 20,
       
    63 	eap_tlv_message_type_u32_t                                = 21,
       
    64 	eap_tlv_message_type_u64_t                                = 22,
       
    65 	eap_tlv_message_type_variable_data                        = 23,
       
    66 	eap_tlv_message_type_eap_method_settings                  = 24,
       
    67 	eap_tlv_message_type_eap_certificate_entry                = 25,
       
    68 	eap_tlv_message_type_i8_t                                 = 26,
       
    69 	eap_tlv_message_type_i16_t                                = 27,
       
    70 	eap_tlv_message_type_i32_t                                = 28,
       
    71 	eap_tlv_message_type_configuration_option                 = 29,
       
    72 };
       
    73 
       
    74 
       
    75 enum eap_tlv_message_type_function_e
       
    76 {
       
    77 	eap_tlv_message_type_function_none                                            = 0,
       
    78 	eap_tlv_message_type_function_check_pmksa_cache                               = 1,
       
    79 	eap_tlv_message_type_function_start_authentication                            = 2,
       
    80 	eap_tlv_message_type_function_complete_association                            = 3,
       
    81 	eap_tlv_message_type_function_disassociation                                  = 4,
       
    82 	eap_tlv_message_type_function_start_preauthentication                         = 5,
       
    83 	eap_tlv_message_type_function_start_reassociation                             = 6,
       
    84 	eap_tlv_message_type_function_complete_reassociation                          = 7,
       
    85 	eap_tlv_message_type_function_start_WPXM_reassociation                        = 8,
       
    86 	eap_tlv_message_type_function_complete_WPXM_reassociation                     = 9,
       
    87 	eap_tlv_message_type_function_packet_process                                  = 10,
       
    88 	eap_tlv_message_type_function_tkip_mic_failure                                = 11,
       
    89 	eap_tlv_message_type_function_eap_acknowledge                                 = 12,
       
    90 	eap_tlv_message_type_function_update_header_offset                            = 13,
       
    91 	eap_tlv_message_type_function_complete_check_pmksa_cache                      = 14,
       
    92 	eap_tlv_message_type_function_packet_send                                     = 15,
       
    93 	eap_tlv_message_type_function_associate                                       = 16,
       
    94 	eap_tlv_message_type_function_disassociate                                    = 17,
       
    95 	eap_tlv_message_type_function_packet_data_session_key                         = 18,
       
    96 	eap_tlv_message_type_function_state_notification                              = 19,
       
    97 	eap_tlv_message_type_function_reassociate                                     = 20,
       
    98 	eap_tlv_message_type_function_update_wlan_database_reference_values           = 21,
       
    99 	eap_tlv_message_type_function_complete_start_WPXM_reassociation               = 22,
       
   100 	eap_tlv_message_type_function_new_protected_setup_credentials                 = 23,
       
   101 	eap_tlv_message_type_function_create_eap_session                              = 24,
       
   102 	eap_tlv_message_type_function_remove_eap_session                              = 25,
       
   103 	eap_tlv_message_type_function_send_eap_identity_request                       = 26,
       
   104 	eap_tlv_message_type_function_packet_data_crypto_keys                         = 27, // EAP Master session Key.
       
   105 	eap_tlv_message_type_function_restart_authentication                          = 28,
       
   106 	eap_tlv_message_type_function_create_state                                    = 29,
       
   107 	eap_tlv_message_type_function_remove_bksa_from_cache                          = 30,
       
   108 	eap_tlv_message_type_function_association                                     = 31,
       
   109 	eap_tlv_message_type_function_set_eap_database_reference_values               = 32,
       
   110 	eap_tlv_message_type_function_eap_mtu                                         = 33,
       
   111 	eap_tlv_message_type_function_get_802_11_authentication_mode                  = 34,
       
   112 	eap_tlv_message_type_function_complete_get_802_11_authentication_mode         = 35,
       
   113 	eap_tlv_message_type_function_complete_remove_eap_session                     = 36,
       
   114 	eap_tlv_message_type_function_complete_disassociation                         = 37,
       
   115 	eap_tlv_message_type_function_last_function                                   = 38, // Keep this the last on this set.
       
   116 
       
   117 	eap_tlv_message_type_function_plugin_get_configuration                        = 1000,
       
   118 	eap_tlv_message_type_function_plugin_set_configuration                        = 1001,
       
   119 	eap_tlv_message_type_function_plugin_copy_configuration                       = 1002,
       
   120 	eap_tlv_message_type_function_plugin_delete_configuration                     = 1003,
       
   121 	eap_tlv_message_type_function_plugin_set_index                                = 1004,
       
   122 	eap_tlv_message_type_function_plugin_get_type_info                            = 1005,
       
   123 	eap_tlv_message_type_function_plugin_invoke_ui                                = 1006,
       
   124 	eap_tlv_message_type_function_plugin_complete_get_configuration               = 1007,
       
   125 	eap_tlv_message_type_function_plugin_complete_set_configuration               = 1008,
       
   126 	eap_tlv_message_type_function_plugin_complete_delete_configuration            = 1009,
       
   127 	eap_tlv_message_type_function_plugin_complete_copy_configuration              = 1010,
       
   128 	eap_tlv_message_type_function_plugin_complete_set_index                       = 1011,
       
   129 	eap_tlv_message_type_function_plugin_complete_get_type_info                   = 1012,
       
   130 	eap_tlv_message_type_function_plugin_complete_invoke_ui                       = 1013,
       
   131 	eap_tlv_message_type_function_plugin_last_function                            = 1014, // Keep this the last on this set.
       
   132 
       
   133 	eap_tlv_message_type_function_general_settings_set_eap_methods                  = 2000,
       
   134 	eap_tlv_message_type_function_general_settings_get_eap_methods                  = 2001,
       
   135 	eap_tlv_message_type_function_general_settings_get_certificate_lists            = 2002,
       
   136 	eap_tlv_message_type_function_general_settings_delete_all_eap_settings          = 2003,
       
   137 	eap_tlv_message_type_function_general_settings_copy_all_eap_settings            = 2004,
       
   138 	eap_tlv_message_type_function_general_settings_complete_set_eap_methods         = 2005,
       
   139 	eap_tlv_message_type_function_general_settings_complete_get_eap_methods         = 2006,
       
   140 	eap_tlv_message_type_function_general_settings_complete_get_certificate_lists   = 2007,
       
   141 	eap_tlv_message_type_function_general_settings_complete_delete_all_eap_settings = 2008,
       
   142 	eap_tlv_message_type_function_general_settings_complete_copy_all_eap_settings   = 2009,
       
   143 	eap_tlv_message_type_function_general_settings_last_function                    = 2010, // Keep this the last on this set.
       
   144 
       
   145 	eap_tlv_message_type_function_pac_store_open_pac_store            = 3000,
       
   146 	eap_tlv_message_type_function_pac_store_create_device_seed            = 3001,
       
   147 	eap_tlv_message_type_function_pac_store_is_master_key_present   = 3002,
       
   148 	eap_tlv_message_type_function_pac_store_is_master_key_and_password_matching   = 3003,
       
   149 	eap_tlv_message_type_function_pac_store_create_and_save_master_key   = 3004,
       
   150 	eap_tlv_message_type_function_pac_store_compare_pac_store_password   = 3005,
       
   151 	eap_tlv_message_type_function_pac_store_is_pacstore_password_present   = 3006,
       
   152 	eap_tlv_message_type_function_pac_store_set_pac_store_password   = 3007,
       
   153 	eap_tlv_message_type_function_pac_store_destroy_pac_store            = 3008,
       
   154 	eap_tlv_message_type_function_pac_store_complete_open_pac_store            = 3009,
       
   155 	eap_tlv_message_type_function_pac_store_complete_create_device_seed            = 3010,
       
   156 	eap_tlv_message_type_function_pac_store_complete_is_master_key_present   = 3011,
       
   157 	eap_tlv_message_type_function_pac_store_complete_is_master_key_and_password_matching   = 3012,
       
   158 	eap_tlv_message_type_function_pac_store_complete_create_and_save_master_key   = 3013,
       
   159 	eap_tlv_message_type_function_pac_store_complete_compare_pac_store_password   = 3014,
       
   160 	eap_tlv_message_type_function_pac_store_complete_is_pacstore_password_present   = 3015,
       
   161 	eap_tlv_message_type_function_pac_store_complete_set_pac_store_password   = 3016,
       
   162 	eap_tlv_message_type_function_pac_store_complete_destroy_pac_store            = 3017,
       
   163 	eap_tlv_message_type_function_pac_store_last_function              = 3018, // Keep this the last on this set.
       
   164 
       
   165 	eap_tlv_message_type_function_wapi_settings_get_all_certificate_labels              = 4000,
       
   166 	eap_tlv_message_type_function_wapi_settings_reset_certificate_store                 = 4001,
       
   167     eap_tlv_message_type_function_wapi_settings_get_configuration                       = 4002,
       
   168     eap_tlv_message_type_function_wapi_settings_set_configuration                       = 4003,
       
   169     eap_tlv_message_type_function_wapi_settings_set_ca_cert                             = 4004,
       
   170     eap_tlv_message_type_function_wapi_settings_set_user_cert                           = 4005,
       
   171     eap_tlv_message_type_function_wapi_settings_delete_configuration                    = 4006,
       
   172     eap_tlv_message_type_function_wapi_settings_complete_get_all_certificate_labels     = 4007,
       
   173     eap_tlv_message_type_function_wapi_settings_complete_reset_certificate_store        = 4008,
       
   174     eap_tlv_message_type_function_wapi_settings_complete_get_configuration              = 4009,
       
   175     eap_tlv_message_type_function_wapi_settings_complete_set_configuration              = 4010,
       
   176     eap_tlv_message_type_function_wapi_settings_complete_set_ca_cert                    = 4011,
       
   177     eap_tlv_message_type_function_wapi_settings_complete_set_user_cert                  = 4012,
       
   178     eap_tlv_message_type_function_wapi_settings_complete_delete_configuration           = 4013,
       
   179     eap_tlv_message_type_function_wapi_settings_complete_last_function                  = 4014, // Keep this the last on this set.
       
   180 
       
   181 
       
   182 	eap_tlv_message_type_function_illegal_value, // Keep this the last value.
       
   183 };
       
   184 
       
   185 
       
   186 enum eap_message_payload_index_e
       
   187 {
       
   188 	eap_message_payload_index_function        = 0,
       
   189 	eap_message_payload_index_first_parameter = 1,
       
   190 };
       
   191 
       
   192 
       
   193 /** @file */
       
   194 
       
   195 class eap_variable_data_c;
       
   196 class eap_am_network_id_c;
       
   197 class eap_buf_chain_wr_c;
       
   198 class eapol_session_key_c;
       
   199 class abs_eap_state_notification_c;
       
   200 class eap_state_notification_c;
       
   201 class network_key_and_index_c;
       
   202 
       
   203 //----------------------------------------------------------------------------
       
   204 
       
   205 
       
   206 /// This class defines functions to add and parse message data composed
       
   207 /// of Attribute-Value Pairs (See eap_tlv_header_c) to/from eap_tlv_message_data_c object.
       
   208 class EAP_EXPORT eap_process_tlv_message_data_c
       
   209 : public eap_tlv_message_data_c
       
   210 {
       
   211 private:
       
   212 	//--------------------------------------------------
       
   213 
       
   214 	abs_eap_am_tools_c * const m_am_tools;
       
   215 
       
   216 	bool m_is_valid;
       
   217 
       
   218 	//--------------------------------------------------
       
   219 protected:
       
   220 	//--------------------------------------------------
       
   221 
       
   222 	//--------------------------------------------------
       
   223 public:
       
   224 	//--------------------------------------------------
       
   225 
       
   226 	/**
       
   227 	 * The destructor of the eap_process_tlv_message_data_c class does nothing.
       
   228 	 */
       
   229 	EAP_FUNC_IMPORT virtual ~eap_process_tlv_message_data_c();
       
   230 
       
   231 	/**
       
   232 	 * The constructor of the eap_process_tlv_message_data_c class simply initializes the attributes.
       
   233 	 */
       
   234 	EAP_FUNC_IMPORT eap_process_tlv_message_data_c(
       
   235 		abs_eap_am_tools_c * const tools);
       
   236 
       
   237 	/**
       
   238 	 * This function should increase reference count.
       
   239 	 */
       
   240 	EAP_FUNC_IMPORT void object_increase_reference_count();
       
   241 
       
   242 	/**
       
   243 	 * This function should first decrease reference count
       
   244 	 * and second return the remaining reference count.
       
   245 	 * Reference count must not be decreased when it is zero.
       
   246 	 */
       
   247 	EAP_FUNC_IMPORT u32_t object_decrease_reference_count();
       
   248 
       
   249 	/**
       
   250 	 * Object must indicate it's validity.
       
   251 	 * If object initialization fails this function must return false.
       
   252 	 * @return This function returns the validity of this object.
       
   253 	 */
       
   254 	EAP_FUNC_IMPORT bool get_is_valid();
       
   255 
       
   256 	//- - - - - - - - - - - - - - - - - - - - - - - - - 
       
   257 
       
   258 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   259 		const eap_variable_data_c * const data) const;
       
   260 
       
   261 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   262 		const eap_am_network_id_c * const network_id) const;
       
   263 
       
   264 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   265 		const abs_eap_state_notification_c * const state) const;
       
   266 
       
   267 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   268 		const eapol_session_key_c * const session_key) const;
       
   269 
       
   270 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   271 		EAP_TEMPLATE_CONST eap_array_c<u16_t> * const ushort_array) const;
       
   272 
       
   273 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   274 		const eap_certificate_entry_c * const cert) const;
       
   275 
       
   276 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   277 		EAP_TEMPLATE_CONST eap_array_c<eap_certificate_entry_c> * const cert_array) const;
       
   278 
       
   279 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   280 		const eap_method_settings_c * const internal_settings) const;
       
   281 
       
   282 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   283 		EAP_TEMPLATE_CONST eap_array_c<eap_type_value_e> * const eap_type_array) const;
       
   284 
       
   285 #if defined(USE_EAP_SIMPLE_CONFIG)
       
   286 
       
   287 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   288 		const network_key_and_index_c * const key) const;
       
   289 
       
   290 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   291 		const eap_array_c<network_key_and_index_c> * const network_keys) const;
       
   292 
       
   293 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   294 		const simple_config_credential_c * const credential) const;
       
   295 
       
   296 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   297 		EAP_TEMPLATE_CONST eap_array_c<simple_config_credential_c> * const credential_array) const;
       
   298 
       
   299 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
       
   300 
       
   301 	EAP_FUNC_IMPORT u32_t get_payload_size(
       
   302 		const eap_variable_data_c * const selector,
       
   303 		const eap_config_value_c * const configuration_option) const;
       
   304 
       
   305 	//- - - - - - - - - - - - - - - - - - - - - - - - - 
       
   306 
       
   307 	EAP_FUNC_IMPORT eap_status_e add_structured_parameter_header(
       
   308 		const eap_tlv_message_type_e type,
       
   309 		const u32_t length);
       
   310 
       
   311 
       
   312 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   313 		const eap_tlv_message_type_e type,
       
   314 		const u32_t integer);
       
   315 
       
   316 
       
   317 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   318 		const u64_t long_integer);
       
   319 
       
   320 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   321 		const u32_t integer);
       
   322 
       
   323 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   324 		const u16_t integer);
       
   325 
       
   326 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   327 		const u8_t byte_integer);
       
   328 
       
   329 
       
   330 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   331 		const i32_t integer);
       
   332 
       
   333 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   334 		const i16_t integer);
       
   335 
       
   336 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   337 		const i8_t byte_integer);
       
   338 
       
   339 
       
   340 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   341 		const bool boolean);
       
   342 
       
   343 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   344 		const eap_status_e status);
       
   345 
       
   346 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   347 		const eapol_key_authentication_type_e authentication_type);
       
   348 
       
   349 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   350 		const eapol_key_802_11_authentication_mode_e mode);
       
   351 
       
   352 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   353 		const eap_tlv_message_type_function_e function);
       
   354 
       
   355 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   356 		const eap_variable_data_c * const variable_data);
       
   357 
       
   358 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   359 		const eap_am_network_id_c * const network_id);
       
   360 
       
   361 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   362 		const eap_buf_chain_wr_c * const packet_buffer);
       
   363 
       
   364 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   365 		const eapol_session_key_c * const session_key);
       
   366 
       
   367 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   368 		const abs_eap_state_notification_c * const state);
       
   369 
       
   370 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   371 		const eap_type_value_e eap_type);
       
   372 
       
   373 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   374 		const eap_general_header_base_c * const packet_data);
       
   375 
       
   376 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   377 		const eap_method_settings_c * const internal_settings);
       
   378 
       
   379 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   380 		const eap_certificate_entry_c * const internal_settings);
       
   381 
       
   382 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   383 		EAP_TEMPLATE_CONST eap_array_c<u16_t> * const ushort_array);
       
   384 
       
   385 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   386 		EAP_TEMPLATE_CONST eap_array_c<eap_certificate_entry_c> * const cert_array);
       
   387 
       
   388 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   389 		EAP_TEMPLATE_CONST eap_array_c<eap_type_value_e> * const eap_type_array);
       
   390 
       
   391 #if defined(USE_EAP_SIMPLE_CONFIG)
       
   392 
       
   393 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   394 		EAP_TEMPLATE_CONST eap_array_c<simple_config_credential_c> * const credential_array);
       
   395 	
       
   396 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
       
   397 
       
   398 	EAP_FUNC_IMPORT eap_status_e add_parameter_data(
       
   399 		const eap_variable_data_c * const selector,
       
   400 		const eap_config_value_c * const configuration_option);
       
   401 
       
   402 	//- - - - - - - - - - - - - - - - - - - - - - - - - 
       
   403 
       
   404 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   405 		const eap_tlv_header_c * const integer_header,
       
   406 		u64_t * const value);
       
   407 
       
   408 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   409 		const eap_tlv_header_c * const integer_header,
       
   410 		u32_t * const value);
       
   411 
       
   412 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   413 		const eap_tlv_header_c * const integer_header,
       
   414 		u16_t * const value);
       
   415 
       
   416 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   417 		const eap_tlv_header_c * const integer_header,
       
   418 		u8_t * const value);
       
   419 
       
   420 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   421 		const eap_tlv_header_c * const integer_header,
       
   422 		i32_t * const value);
       
   423 
       
   424 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   425 		const eap_tlv_header_c * const integer_header,
       
   426 		i16_t * const value);
       
   427 
       
   428 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   429 		const eap_tlv_header_c * const integer_header,
       
   430 		i8_t * const value);
       
   431 
       
   432 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   433 		const eap_tlv_header_c * const function_header,
       
   434 		eap_tlv_message_type_function_e * const function);
       
   435 
       
   436 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   437 		const eap_tlv_header_c * const network_id_header,
       
   438 		eap_am_network_id_c * const new_network_id);
       
   439 
       
   440 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   441 		const eap_tlv_header_c * const variable_data_header,
       
   442 		eap_variable_data_c * const variable_data);
       
   443 
       
   444 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   445 		const eap_tlv_header_c * const session_key_header,
       
   446 		eapol_session_key_c * const session_key);
       
   447 	
       
   448 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   449 		const eap_tlv_header_c * const state_header,
       
   450 		eap_state_notification_c * * const state);
       
   451 
       
   452 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   453 		const eap_tlv_header_c * const eap_type_header,
       
   454 		eap_type_value_e * const eap_type);
       
   455 
       
   456 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   457 		const eap_tlv_header_c * const settings_header,
       
   458 		eap_method_settings_c * const settings);
       
   459 
       
   460 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   461 		const eap_tlv_header_c * const settings_header,
       
   462 		eap_certificate_entry_c * const settings);
       
   463 
       
   464 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   465 		const eap_tlv_header_c * const settings_header,
       
   466 		eap_array_c<u16_t> * const settings);
       
   467 
       
   468 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   469 		const eap_tlv_header_c * const settings_header,
       
   470 		eap_array_c<eap_type_value_e> * const settings);
       
   471 
       
   472 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   473 		const eap_tlv_header_c * const settings_header,
       
   474 		eap_array_c<eap_certificate_entry_c> * const settings);
       
   475 
       
   476 #if defined(USE_EAP_SIMPLE_CONFIG)
       
   477 
       
   478 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   479 		const eap_tlv_header_c * const network_key_header,
       
   480 		network_key_and_index_c * const network_key);
       
   481 
       
   482 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   483 		const eap_tlv_header_c * const network_keys_array_header,
       
   484 		eap_array_c<network_key_and_index_c> * const network_keys_array);
       
   485 
       
   486 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   487 		const eap_tlv_header_c * const credential_array_header,
       
   488 		eap_array_c<simple_config_credential_c> * const credential_array);
       
   489 
       
   490 	EAP_FUNC_IMPORT eap_status_e get_parameter_data(
       
   491 		const eap_tlv_header_c * const credential_header,
       
   492 		simple_config_credential_c * const credential);
       
   493 
       
   494 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
       
   495 
       
   496 	//- - - - - - - - - - - - - - - - - - - - - - - - - 
       
   497 
       
   498 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   499 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   500 		const u32_t parameter_index,
       
   501 		eap_am_network_id_c * const network_id);
       
   502 
       
   503 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   504 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   505 		const u32_t parameter_index,
       
   506 		eap_variable_data_c * const variable_data);
       
   507 
       
   508 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   509 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   510 		const u32_t parameter_index,
       
   511 		const eap_tlv_message_type_e type,
       
   512 		eap_status_e * const out_data);
       
   513 
       
   514 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   515 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   516 		const u32_t parameter_index,
       
   517 		eap_array_c<eap_am_network_id_c> * const out_data);
       
   518 
       
   519 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   520 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   521 		const u32_t parameter_index,
       
   522 		eap_state_notification_c * * const out_data);
       
   523 
       
   524 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   525 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   526 		const u32_t parameter_index,
       
   527 		eapol_RSNA_key_header_c::eapol_RSNA_cipher_e * const out_data);
       
   528 
       
   529 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   530 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   531 		const u32_t parameter_index,
       
   532 		bool * const out_data);
       
   533 
       
   534 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   535 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   536 		const u32_t parameter_index,
       
   537 		eap_type_value_e * const out_data);
       
   538 
       
   539 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   540 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   541 		const u32_t parameter_index,
       
   542 		eapol_key_authentication_type_e * const out_data);
       
   543 
       
   544 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   545 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   546 		const u32_t parameter_index,
       
   547 		eapol_session_key_c * const out_data);
       
   548 
       
   549 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   550 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   551 		const u32_t parameter_index,
       
   552 		eap_tlv_message_type_function_e * const out_data);
       
   553 
       
   554 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   555 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   556 		const u32_t parameter_index,
       
   557 		eapol_key_802_11_authentication_mode_e * const out_data);
       
   558 
       
   559 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   560 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   561 		const u32_t parameter_index,
       
   562 		eapol_RSNA_key_header_c::eapol_tkip_mic_failure_type_e * const out_data);
       
   563 
       
   564 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   565 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   566 		const u32_t parameter_index,
       
   567 		eapol_wlan_authentication_state_e * const out_data);
       
   568 
       
   569 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   570 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   571 		const u32_t parameter_index,
       
   572 		u64_t * const out_data);
       
   573 
       
   574 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   575 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   576 		const u32_t parameter_index,
       
   577 		u32_t * const out_data);
       
   578 
       
   579 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   580 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   581 		const u32_t parameter_index,
       
   582 		u16_t * const out_data);
       
   583 
       
   584 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   585 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   586 		const u32_t parameter_index,
       
   587 		u8_t * const out_data);
       
   588 
       
   589 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   590 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   591 		const u32_t parameter_index,
       
   592 		i32_t * const out_data);
       
   593 
       
   594 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   595 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   596 		const u32_t parameter_index,
       
   597 		i16_t * const out_data);
       
   598 
       
   599 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   600 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   601 		const u32_t parameter_index,
       
   602 		i8_t * const out_data);
       
   603 
       
   604 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   605 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   606 		const u32_t parameter_index,
       
   607 		eap_method_settings_c * const out_data);
       
   608 
       
   609 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   610 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   611 		const u32_t parameter_index,
       
   612 		eap_array_c<u16_t> * const out_data);
       
   613 
       
   614 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   615 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   616 		const u32_t parameter_index,
       
   617 		eap_array_c<eap_certificate_entry_c> * const out_data);
       
   618 
       
   619 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   620 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   621 		const u32_t parameter_index,
       
   622 		eap_array_c<eap_type_value_e> * const out_data);
       
   623 
       
   624 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   625 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   626 		const u32_t parameter_index,
       
   627 		eap_certificate_entry_c::eap_certificate_type_e * const out_data);
       
   628 
       
   629 #if defined(USE_EAP_SIMPLE_CONFIG)
       
   630 
       
   631 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   632 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   633 		const u32_t parameter_index,
       
   634 		simple_config_Authentication_Type_e * const out_data);
       
   635 
       
   636 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   637 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   638 		const u32_t parameter_index,
       
   639 		simple_config_Encryption_Type_e * const out_data);
       
   640 
       
   641 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   642 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   643 		const u32_t parameter_index,
       
   644 		eap_array_c<simple_config_credential_c> * const out_data);
       
   645 
       
   646 	EAP_FUNC_IMPORT eap_status_e read_parameter_data(
       
   647 		EAP_TEMPLATE_CONST eap_array_c<eap_tlv_header_c> * const parameters,
       
   648 		const u32_t parameter_index,
       
   649 		eap_array_c<network_key_and_index_c> * const out_data);
       
   650 
       
   651 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
       
   652 
       
   653 	//- - - - - - - - - - - - - - - - - - - - - - - - - 
       
   654 
       
   655 	EAP_FUNC_IMPORT eap_const_string get_type_string(const eap_tlv_message_type_e type);
       
   656 
       
   657 	EAP_FUNC_IMPORT eap_const_string get_function_string(const eap_tlv_message_type_function_e function);
       
   658 
       
   659 	// 
       
   660 	//--------------------------------------------------
       
   661 }; // class eap_process_tlv_message_data_c
       
   662 
       
   663 
       
   664 //--------------------------------------------------
       
   665 
       
   666 #endif //#if !defined(_EAP_PROCESS_TLV_MESSAGE_DATA_H_)
       
   667 
       
   668 
       
   669 // End.