eapol/eapol_framework/eapol_common/include/dummy_eap_core.h
changeset 52 c23bdf5a328a
parent 33 938269283a16
equal deleted inserted replaced
51:e863583e6720 52:c23bdf5a328a
   126 
   126 
   127 #if !defined(_DUMMY_EAP_CORE_H_)
   127 #if !defined(_DUMMY_EAP_CORE_H_)
   128 #define _DUMMY_EAP_CORE_H_
   128 #define _DUMMY_EAP_CORE_H_
   129 
   129 
   130 #include "eap_am_export.h"
   130 #include "eap_am_export.h"
       
   131 // Start: added by script change_export_macros.sh.
       
   132 #if defined(EAP_NO_EXPORT_DUMMY_EAP_CORE_H)
       
   133 	#define EAP_CLASS_VISIBILITY_DUMMY_EAP_CORE_H EAP_NONSHARABLE 
       
   134 	#define EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H 
       
   135 	#define EAP_C_FUNC_VISIBILITY_DUMMY_EAP_CORE_H 
       
   136 	#define EAP_FUNC_EXPORT_DUMMY_EAP_CORE_H 
       
   137 	#define EAP_C_FUNC_EXPORT_DUMMY_EAP_CORE_H 
       
   138 #elif defined(EAP_EXPORT_DUMMY_EAP_CORE_H)
       
   139 	#define EAP_CLASS_VISIBILITY_DUMMY_EAP_CORE_H EAP_EXPORT 
       
   140 	#define EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H EAP_FUNC_EXPORT 
       
   141 	#define EAP_C_FUNC_VISIBILITY_DUMMY_EAP_CORE_H EAP_C_FUNC_EXPORT 
       
   142 	#define EAP_FUNC_EXPORT_DUMMY_EAP_CORE_H EAP_FUNC_EXPORT 
       
   143 	#define EAP_C_FUNC_EXPORT_DUMMY_EAP_CORE_H EAP_C_FUNC_EXPORT 
       
   144 #else
       
   145 	#define EAP_CLASS_VISIBILITY_DUMMY_EAP_CORE_H EAP_IMPORT 
       
   146 	#define EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H EAP_FUNC_IMPORT 
       
   147 	#define EAP_C_FUNC_VISIBILITY_DUMMY_EAP_CORE_H EAP_C_FUNC_IMPORT 
       
   148 	#define EAP_FUNC_EXPORT_DUMMY_EAP_CORE_H 
       
   149 	#define EAP_C_FUNC_EXPORT_DUMMY_EAP_CORE_H 
       
   150 #endif
       
   151 // End: added by script change_export_macros.sh.
   131 #include "abs_eap_base_type.h"
   152 #include "abs_eap_base_type.h"
   132 #include "eap_core_map.h"
   153 #include "eap_core_map.h"
   133 #include "eap_am_network_id.h"
   154 #include "eap_am_network_id.h"
   134 #include "abs_eap_stack_interface.h"
   155 #include "abs_eap_stack_interface.h"
   135 #include "eap_configuration_field.h"
   156 #include "eap_configuration_field.h"
   155 //--------------------------------------------------------------------------------------------------
   176 //--------------------------------------------------------------------------------------------------
   156 
   177 
   157 
   178 
   158 
   179 
   159 /// A eap_core_c class implements the basic functionality of EAP-type.
   180 /// A eap_core_c class implements the basic functionality of EAP-type.
   160 class EAP_EXPORT dummy_eap_core_c
   181 class EAP_CLASS_VISIBILITY_DUMMY_EAP_CORE_H dummy_eap_core_c
   161 : public abs_eap_core_map_c
   182 : public abs_eap_core_map_c
   162 , public abs_eap_base_type_c
   183 , public abs_eap_base_type_c
   163 , public abs_eap_base_timer_c
   184 , public abs_eap_base_timer_c
   164 , public abs_eap_stack_interface_c
   185 , public abs_eap_stack_interface_c
   165 {
   186 {
   305 
   326 
   306 	/**
   327 	/**
   307 	 * Re-transmission is used to test protocols.
   328 	 * Re-transmission is used to test protocols.
   308 	 * This function resends the packet.
   329 	 * This function resends the packet.
   309 	 */
   330 	 */
   310 	EAP_FUNC_IMPORT eap_status_e resend_packet(
   331 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e resend_packet(
   311 		const eap_am_network_id_c * const send_network_id,
   332 		const eap_am_network_id_c * const send_network_id,
   312 		eap_buf_chain_wr_c * const sent_packet,
   333 		eap_buf_chain_wr_c * const sent_packet,
   313 		const u32_t header_offset,
   334 		const u32_t header_offset,
   314 		const u32_t data_length,
   335 		const u32_t data_length,
   315 		const u32_t buffer_free,
   336 		const u32_t buffer_free,
   318 
   339 
   319 	/** 
   340 	/** 
   320 	 * Re-transmission is used to test protocols.
   341 	 * Re-transmission is used to test protocols.
   321 	 * This function cancels retransmissions.
   342 	 * This function cancels retransmissions.
   322 	 */
   343 	 */
   323 	EAP_FUNC_IMPORT eap_status_e cancel_retransmission();
   344 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e cancel_retransmission();
   324 
   345 
   325 	/**
   346 	/**
   326 	 * Re-transmission is used to test protocols.
   347 	 * Re-transmission is used to test protocols.
   327 	 * This function inits retransmission of sent packet.
   348 	 * This function inits retransmission of sent packet.
   328 	 */
   349 	 */
   329 	EAP_FUNC_IMPORT eap_status_e init_retransmission(
   350 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e init_retransmission(
   330 		const eap_am_network_id_c * const send_network_id,
   351 		const eap_am_network_id_c * const send_network_id,
   331 		eap_buf_chain_wr_c * const sent_packet,
   352 		eap_buf_chain_wr_c * const sent_packet,
   332 		const u32_t header_offset,
   353 		const u32_t header_offset,
   333 		const u32_t data_length,
   354 		const u32_t data_length,
   334 		const eap_code_value_e eap_code,
   355 		const eap_code_value_e eap_code,
   337 		);
   358 		);
   338 
   359 
   339 	/**
   360 	/**
   340 	 * This function cancels previous session timeout and initializes new timeout for the session.
   361 	 * This function cancels previous session timeout and initializes new timeout for the session.
   341 	 */
   362 	 */
   342 	EAP_FUNC_IMPORT eap_status_e initialize_session_timeout(
   363 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e initialize_session_timeout(
   343 		const u32_t session_timeout_ms);
   364 		const u32_t session_timeout_ms);
   344 
   365 
   345 	/**
   366 	/**
   346 	 * This function cancels timeout for a session.
   367 	 * This function cancels timeout for a session.
   347 	 */
   368 	 */
   348 	EAP_FUNC_IMPORT eap_status_e cancel_session_timeout();
   369 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e cancel_session_timeout();
   349 
   370 
   350 	/**
   371 	/**
   351 	 * This function calls shutdown() for one eap_base_type_c object.
   372 	 * This function calls shutdown() for one eap_base_type_c object.
   352 	 */
   373 	 */
   353 	EAP_FUNC_IMPORT static eap_status_e shutdown_operation(
   374 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H static eap_status_e shutdown_operation(
   354 		eap_base_type_c * const value,
   375 		eap_base_type_c * const value,
   355 		abs_eap_am_tools_c * const m_am_tools);
   376 		abs_eap_am_tools_c * const m_am_tools);
   356 
   377 
   357 	/**
   378 	/**
   358 	 * This function calls reset() for one eap_base_type_c object.
   379 	 * This function calls reset() for one eap_base_type_c object.
   359 	 */
   380 	 */
   360 	EAP_FUNC_IMPORT static eap_status_e reset_operation(
   381 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H static eap_status_e reset_operation(
   361 		eap_base_type_c * const handler,
   382 		eap_base_type_c * const handler,
   362 		abs_eap_am_tools_c * const m_am_tools);
   383 		abs_eap_am_tools_c * const m_am_tools);
   363 
   384 
   364 	EAP_FUNC_IMPORT eap_status_e client_proposes_eap_types(
   385 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e client_proposes_eap_types(
   365 		const eap_am_network_id_c * const receive_network_id,
   386 		const eap_am_network_id_c * const receive_network_id,
   366 		const u8_t eap_identifier);
   387 		const u8_t eap_identifier);
   367 
   388 
   368 	/**
   389 	/**
   369 	 * This function processes EAP-packet with known EAP-type.
   390 	 * This function processes EAP-packet with known EAP-type.
   370 	 */
   391 	 */
   371 	EAP_FUNC_IMPORT eap_status_e packet_process_type(
   392 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e packet_process_type(
   372 		const eap_type_value_e used_eap_type,
   393 		const eap_type_value_e used_eap_type,
   373 		const eap_am_network_id_c * const receive_network_id,
   394 		const eap_am_network_id_c * const receive_network_id,
   374 		eap_general_header_base_c * const packet_data,
   395 		eap_general_header_base_c * const packet_data,
   375 		const u32_t packet_length);
   396 		const u32_t packet_length);
   376 
   397 
   377 #if defined(USE_EAP_CORE_SERVER)
   398 #if defined(USE_EAP_CORE_SERVER)
   378 	/**
   399 	/**
   379 	 * This function re-starts authentication with new EAP-type.
   400 	 * This function re-starts authentication with new EAP-type.
   380 	 * Only server calls this function.
   401 	 * Only server calls this function.
   381 	 */
   402 	 */
   382 	EAP_FUNC_IMPORT eap_status_e restart_with_new_type(
   403 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e restart_with_new_type(
   383 		const eap_type_value_e used_eap_type,
   404 		const eap_type_value_e used_eap_type,
   384 		const eap_am_network_id_c * const receive_network_id,
   405 		const eap_am_network_id_c * const receive_network_id,
   385 		const u8_t eap_identifier);
   406 		const u8_t eap_identifier);
   386 #endif //#if defined(USE_EAP_CORE_SERVER)
   407 #endif //#if defined(USE_EAP_CORE_SERVER)
   387 
   408 
   388 #if defined(USE_EAP_CORE_SERVER)
   409 #if defined(USE_EAP_CORE_SERVER)
   389 	EAP_FUNC_IMPORT eap_status_e handle_eap_identity_response(
   410 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e handle_eap_identity_response(
   390 		eap_base_type_c * const handler,
   411 		eap_base_type_c * const handler,
   391 		const eap_type_value_e used_eap_type,
   412 		const eap_type_value_e used_eap_type,
   392 		const eap_am_network_id_c * const receive_network_id,
   413 		const eap_am_network_id_c * const receive_network_id,
   393 		eap_header_wr_c * const eap,
   414 		eap_header_wr_c * const eap,
   394 		const u32_t packet_length);
   415 		const u32_t packet_length);
   395 #endif //#if defined(USE_EAP_CORE_SERVER)
   416 #endif //#if defined(USE_EAP_CORE_SERVER)
   396 
   417 
   397 	/**
   418 	/**
   398 	 * This function handles EAP-Request/Identity.
   419 	 * This function handles EAP-Request/Identity.
   399 	 */
   420 	 */
   400 	EAP_FUNC_IMPORT eap_status_e handle_eap_identity_request(
   421 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e handle_eap_identity_request(
   401 		const eap_type_value_e used_eap_type,
   422 		const eap_type_value_e used_eap_type,
   402 		const u8_t eap_identifier,
   423 		const u8_t eap_identifier,
   403 		const eap_am_network_id_c * const receive_network_id);
   424 		const eap_am_network_id_c * const receive_network_id);
   404 
   425 
   405 	/**
   426 	/**
   406 	 * This function creates EAP-Response/Identity.
   427 	 * This function creates EAP-Response/Identity.
   407 	 */
   428 	 */
   408 	EAP_FUNC_IMPORT eap_status_e create_eap_identity_response(
   429 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e create_eap_identity_response(
   409 		eap_buf_chain_wr_c * const response_packet,
   430 		eap_buf_chain_wr_c * const response_packet,
   410 		const eap_variable_data_c * const identity,
   431 		const eap_variable_data_c * const identity,
   411 		const u8_t eap_identifier
   432 		const u8_t eap_identifier
   412 		);
   433 		);
   413 
   434 
   414 	/**
   435 	/**
   415 	 * This function sends EAP-Response/Identity.
   436 	 * This function sends EAP-Response/Identity.
   416 	 */
   437 	 */
   417 	EAP_FUNC_IMPORT eap_status_e send_eap_identity_response(
   438 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e send_eap_identity_response(
   418 		const eap_am_network_id_c * const send_network_id,
   439 		const eap_am_network_id_c * const send_network_id,
   419 		const eap_variable_data_c * const identity,
   440 		const eap_variable_data_c * const identity,
   420 		const u8_t eap_identifier);
   441 		const u8_t eap_identifier);
   421 
   442 
   422 	/**
   443 	/**
   423 	 * This function sends EAP-Response/Notification.
   444 	 * This function sends EAP-Response/Notification.
   424 	 */
   445 	 */
   425 	EAP_FUNC_IMPORT eap_status_e send_eap_notification_response(
   446 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e send_eap_notification_response(
   426 		const eap_am_network_id_c * const send_network_id,
   447 		const eap_am_network_id_c * const send_network_id,
   427 		const u8_t eap_identifier);
   448 		const u8_t eap_identifier);
   428 
   449 
   429 	/**
   450 	/**
   430 	 * This function initializes timeout for received EAP-Failure.
   451 	 * This function initializes timeout for received EAP-Failure.
   431 	 */
   452 	 */
   432 	EAP_FUNC_IMPORT eap_status_e set_eap_failure_timeout();
   453 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e set_eap_failure_timeout();
   433 
   454 
   434 	/**
   455 	/**
   435 	 * This function cancels timeout for received EAP-Failure.
   456 	 * This function cancels timeout for received EAP-Failure.
   436 	 */
   457 	 */
   437 	EAP_FUNC_IMPORT eap_status_e cancel_eap_failure_timeout();
   458 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e cancel_eap_failure_timeout();
   438 
   459 
   439 #if defined(USE_EAP_CORE_WAIT_REQUEST_TYPE_TIMER)
   460 #if defined(USE_EAP_CORE_WAIT_REQUEST_TYPE_TIMER)
   440 	eap_status_e set_wait_eap_request_type_timeout();
   461 	eap_status_e set_wait_eap_request_type_timeout();
   441 
   462 
   442 	eap_status_e cancel_wait_eap_request_type_timeout();
   463 	eap_status_e cancel_wait_eap_request_type_timeout();
   443 #endif //#if defined(USE_EAP_CORE_WAIT_REQUEST_TYPE_TIMER)
   464 #endif //#if defined(USE_EAP_CORE_WAIT_REQUEST_TYPE_TIMER)
   444 
   465 
   445 	EAP_FUNC_IMPORT eap_status_e asynchronous_init_remove_eap_session();
   466 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e asynchronous_init_remove_eap_session();
   446 
   467 
   447 	EAP_FUNC_IMPORT eap_status_e initialize_asynchronous_init_remove_eap_session(
   468 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e initialize_asynchronous_init_remove_eap_session(
   448 		const u32_t remove_session_timeout);
   469 		const u32_t remove_session_timeout);
   449 
   470 
   450 	EAP_FUNC_IMPORT eap_status_e cancel_asynchronous_init_remove_eap_session();
   471 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e cancel_asynchronous_init_remove_eap_session();
   451 
   472 
   452 	eap_status_e init_end_of_session(
   473 	eap_status_e init_end_of_session(
   453 		const abs_eap_state_notification_c * const state);
   474 		const abs_eap_state_notification_c * const state);
   454 
   475 
   455 	eap_status_e set_eap_identity_routing_info_and_nai_decoration(
   476 	eap_status_e set_eap_identity_routing_info_and_nai_decoration(
   464 	//--------------------------------------------------
   485 	//--------------------------------------------------
   465 
   486 
   466 	/**
   487 	/**
   467 	 * The destructor of the eap_core class does nothing special.
   488 	 * The destructor of the eap_core class does nothing special.
   468 	 */
   489 	 */
   469 	EAP_FUNC_IMPORT virtual ~dummy_eap_core_c();
   490 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H virtual ~dummy_eap_core_c();
   470 
   491 
   471 	/**
   492 	/**
   472 	 * The constructor initializes member attributes using parameters passed to it.
   493 	 * The constructor initializes member attributes using parameters passed to it.
   473 	 * @param tools is pointer to the tools class. @see abs_eap_am_tools_c.
   494 	 * @param tools is pointer to the tools class. @see abs_eap_am_tools_c.
   474 	 * @param partner is back pointer to object which created this object.
   495 	 * @param partner is back pointer to object which created this object.
   475 	 * @param is_client_when_true indicates whether the network entity should act
   496 	 * @param is_client_when_true indicates whether the network entity should act
   476 	 * @param is_tunneled_eap tells the EAP is run in tunnel (PEAP or other).
   497 	 * @param is_tunneled_eap tells the EAP is run in tunnel (PEAP or other).
   477 	 * as a client (true) or server (false), in terms of EAP-protocol
   498 	 * as a client (true) or server (false), in terms of EAP-protocol
   478 	 * whether this network entity is EAP-supplicant (true) or EAP-authenticator (false).
   499 	 * whether this network entity is EAP-supplicant (true) or EAP-authenticator (false).
   479 	 */
   500 	 */
   480 	EAP_FUNC_IMPORT dummy_eap_core_c(
   501 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H dummy_eap_core_c(
   481 		abs_eap_am_tools_c * const tools,
   502 		abs_eap_am_tools_c * const tools,
   482 		abs_eap_core_c * const partner,
   503 		abs_eap_core_c * const partner,
   483 		const bool is_client_when_true,
   504 		const bool is_client_when_true,
   484 		const eap_am_network_id_c * const receive_network_id,
   505 		const eap_am_network_id_c * const receive_network_id,
   485 		const bool is_tunneled_eap);
   506 		const bool is_tunneled_eap);
   488 	 * The load_type() function function indicates the lower level to load
   509 	 * The load_type() function function indicates the lower level to load
   489 	 * new module including EAP-type. The type parameter is the requested EAP-type.
   510 	 * new module including EAP-type. The type parameter is the requested EAP-type.
   490 	 * @param type is the identifier of the required EAP type.
   511 	 * @param type is the identifier of the required EAP type.
   491 	 * @return Function returns pointer to the EAP type object.
   512 	 * @return Function returns pointer to the EAP type object.
   492 	 */
   513 	 */
   493 	EAP_FUNC_IMPORT eap_base_type_c * load_type(
   514 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_base_type_c * load_type(
   494 		const eap_type_value_e type,
   515 		const eap_type_value_e type,
   495 		const eap_type_value_e tunneling_type,
   516 		const eap_type_value_e tunneling_type,
   496 		const eap_am_network_id_c * const receive_network_id);
   517 		const eap_am_network_id_c * const receive_network_id);
   497 
   518 
   498 	EAP_FUNC_IMPORT void trace_eap_packet(
   519 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void trace_eap_packet(
   499 		eap_const_string prefix,
   520 		eap_const_string prefix,
   500 		const eap_header_wr_c * const eap_header);
   521 		const eap_header_wr_c * const eap_header);
   501 
   522 
   502 	// This is documented in abs_eap_stack_interface_c::packet_process().
   523 	// This is documented in abs_eap_stack_interface_c::packet_process().
   503 	EAP_FUNC_IMPORT eap_status_e packet_process(
   524 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e packet_process(
   504 		const eap_am_network_id_c * const receive_network_id,
   525 		const eap_am_network_id_c * const receive_network_id,
   505 		eap_general_header_base_c * const packet_data,
   526 		eap_general_header_base_c * const packet_data,
   506 		const u32_t packet_length); 
   527 		const u32_t packet_length); 
   507 
   528 
   508 	// This is documented in abs_eap_base_type_c::packet_send().
   529 	// This is documented in abs_eap_base_type_c::packet_send().
   509 	EAP_FUNC_IMPORT eap_status_e packet_send(
   530 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e packet_send(
   510 		const eap_am_network_id_c * const send_network_id,
   531 		const eap_am_network_id_c * const send_network_id,
   511 		eap_buf_chain_wr_c * const sent_packet,
   532 		eap_buf_chain_wr_c * const sent_packet,
   512 		const u32_t header_offset,
   533 		const u32_t header_offset,
   513 		const u32_t data_length,
   534 		const u32_t data_length,
   514 		const u32_t buffer_length); 
   535 		const u32_t buffer_length); 
   515 
   536 
   516 	/**
   537 	/**
   517 	 * The get_partner() function returns pointer to partner class.
   538 	 * The get_partner() function returns pointer to partner class.
   518 	 */
   539 	 */
   519 	EAP_FUNC_IMPORT abs_eap_core_c * get_partner();
   540 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H abs_eap_core_c * get_partner();
   520 
   541 
   521 	/**
   542 	/**
   522 	 * The set_partner() function sets pointer to partner class.
   543 	 * The set_partner() function sets pointer to partner class.
   523 	 */
   544 	 */
   524 	EAP_FUNC_IMPORT void set_partner(abs_eap_core_c * const partner);
   545 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void set_partner(abs_eap_core_c * const partner);
   525 
   546 
   526 	// This is documented in abs_eap_base_type_c::get_header_offset().
   547 	// This is documented in abs_eap_base_type_c::get_header_offset().
   527 	EAP_FUNC_IMPORT u32_t get_header_offset(
   548 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H u32_t get_header_offset(
   528 		u32_t * const MTU,
   549 		u32_t * const MTU,
   529 		u32_t * const trailer_length);
   550 		u32_t * const trailer_length);
   530 
   551 
   531 	// This is documented in abs_eap_base_type_c::load_module().
   552 	// This is documented in abs_eap_base_type_c::load_module().
   532 	EAP_FUNC_IMPORT eap_status_e load_module(
   553 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e load_module(
   533 		const eap_type_value_e type,
   554 		const eap_type_value_e type,
   534 		const eap_type_value_e /* tunneling_type */,
   555 		const eap_type_value_e /* tunneling_type */,
   535 		abs_eap_base_type_c * const partner,
   556 		abs_eap_base_type_c * const partner,
   536 		eap_base_type_c ** const eap_type,
   557 		eap_base_type_c ** const eap_type,
   537 		const bool is_client_when_true,
   558 		const bool is_client_when_true,
   538 		const eap_am_network_id_c * const receive_network_id);
   559 		const eap_am_network_id_c * const receive_network_id);
   539 
   560 
   540 	// This is documented in abs_eap_base_type_c::unload_module().
   561 	// This is documented in abs_eap_base_type_c::unload_module().
   541 	EAP_FUNC_IMPORT eap_status_e unload_module(
   562 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e unload_module(
   542 		const eap_type_value_e type); 
   563 		const eap_type_value_e type); 
   543 
   564 
   544 	/**
   565 	/**
   545 	 * The adaptation module calls the eap_acknowledge() function after
   566 	 * The adaptation module calls the eap_acknowledge() function after
   546 	 * any Network Protocol packet is received. This is used as a success indication.
   567 	 * any Network Protocol packet is received. This is used as a success indication.
   547 	 * This is described in RFC 2284 "PPP Extensible Authentication Protocol (EAP)".
   568 	 * This is described in RFC 2284 "PPP Extensible Authentication Protocol (EAP)".
   548 	 * Mostly there is only one session in the client.
   569 	 * Mostly there is only one session in the client.
   549 	 * The server does not need eap_acknowledge() function because
   570 	 * The server does not need eap_acknowledge() function because
   550 	 * server (EAP-authenticator) sends the EAP-success message.
   571 	 * server (EAP-authenticator) sends the EAP-success message.
   551 	 */
   572 	 */
   552 	EAP_FUNC_IMPORT eap_status_e eap_acknowledge(
   573 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e eap_acknowledge(
   553 		const eap_am_network_id_c * const receive_network_id); 
   574 		const eap_am_network_id_c * const receive_network_id); 
   554 
   575 
   555 	// This is documented in abs_eap_base_type_c::restart_authentication().
   576 	// This is documented in abs_eap_base_type_c::restart_authentication().
   556 	EAP_FUNC_IMPORT eap_status_e restart_authentication(
   577 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e restart_authentication(
   557 		const eap_am_network_id_c * const send_network_id,
   578 		const eap_am_network_id_c * const send_network_id,
   558 		const bool is_client_when_true);
   579 		const bool is_client_when_true);
   559 
   580 
   560 	/**
   581 	/**
   561 	 * The EAP Core calls the send_eap_nak_response() function
   582 	 * The EAP Core calls the send_eap_nak_response() function
   562 	 * when EAP-authentication with requested EAP type is not possible.
   583 	 * when EAP-authentication with requested EAP type is not possible.
   563 	 * @param receive_network_id includes the addresses (network identity) and packet type.
   584 	 * @param receive_network_id includes the addresses (network identity) and packet type.
   564 	 * @param eap_identifier is the EAP-Identifier to be used with EAP-Nak message.
   585 	 * @param eap_identifier is the EAP-Identifier to be used with EAP-Nak message.
   565 	 * @param preferred_eap_type is the acceptable EAP-Type to be informed with an other peer.
   586 	 * @param preferred_eap_type is the acceptable EAP-Type to be informed with an other peer.
   566 	 */
   587 	 */
   567 	EAP_FUNC_IMPORT eap_status_e send_eap_nak_response(
   588 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e send_eap_nak_response(
   568 		const eap_am_network_id_c * const receive_network_id,
   589 		const eap_am_network_id_c * const receive_network_id,
   569 		const u8_t eap_identifier,
   590 		const u8_t eap_identifier,
   570 		const eap_array_c<eap_type_value_e> * const eap_type_list);
   591 		const eap_array_c<eap_type_value_e> * const eap_type_list);
   571 
   592 
   572 
   593 
   575 	/**
   596 	/**
   576 	 * The EAP Core calls the send_eap_identity_request() function
   597 	 * The EAP Core calls the send_eap_identity_request() function
   577 	 * when EAP-authentication is needed with another peer.
   598 	 * when EAP-authentication is needed with another peer.
   578 	 * @param network_id includes the addresses (network identity) and packet type.
   599 	 * @param network_id includes the addresses (network identity) and packet type.
   579 	 */
   600 	 */
   580 	EAP_FUNC_IMPORT eap_status_e send_eap_identity_request(
   601 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e send_eap_identity_request(
   581 		const eap_am_network_id_c * const network_id);
   602 		const eap_am_network_id_c * const network_id);
   582 
   603 
   583 	/**
   604 	/**
   584 	 * This function sends EAP-Success.
   605 	 * This function sends EAP-Success.
   585 	 */
   606 	 */
   586 	EAP_FUNC_IMPORT eap_status_e send_eap_success(
   607 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e send_eap_success(
   587 		const eap_am_network_id_c * const send_network_id,
   608 		const eap_am_network_id_c * const send_network_id,
   588 		const u8_t eap_identifier);
   609 		const u8_t eap_identifier);
   589 
   610 
   590 	/**
   611 	/**
   591 	 * This function sends EAP-Failure.
   612 	 * This function sends EAP-Failure.
   592 	 */
   613 	 */
   593 	EAP_FUNC_IMPORT eap_status_e send_eap_failure(
   614 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e send_eap_failure(
   594 		const eap_am_network_id_c * const send_network_id,
   615 		const eap_am_network_id_c * const send_network_id,
   595 		const u8_t eap_identifier);
   616 		const u8_t eap_identifier);
   596 
   617 
   597 #endif //#if defined(USE_EAP_CORE_SERVER)
   618 #endif //#if defined(USE_EAP_CORE_SERVER)
   598 
   619 
   599 
   620 
   600 	// This is documented in abs_eap_base_type_c::packet_data_crypto_keys().
   621 	// This is documented in abs_eap_base_type_c::packet_data_crypto_keys().
   601 	EAP_FUNC_IMPORT eap_status_e packet_data_crypto_keys(
   622 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e packet_data_crypto_keys(
   602 		const eap_am_network_id_c * const send_network_id,
   623 		const eap_am_network_id_c * const send_network_id,
   603 		const eap_master_session_key_c * const master_session_key
   624 		const eap_master_session_key_c * const master_session_key
   604 		);
   625 		);
   605 
   626 
   606 	// This is documented in abs_eap_stack_interface_c::configure().
   627 	// This is documented in abs_eap_stack_interface_c::configure().
   607 	EAP_FUNC_IMPORT eap_status_e configure();
   628 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e configure();
   608 
   629 
   609 	// This is documented in abs_eap_stack_interface_c::shutdown().
   630 	// This is documented in abs_eap_stack_interface_c::shutdown().
   610 	EAP_FUNC_IMPORT eap_status_e shutdown();
   631 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e shutdown();
   611 
   632 
   612 	// This is documented in abs_eap_base_type_c::read_configure().
   633 	// This is documented in abs_eap_base_type_c::read_configure().
   613 	EAP_FUNC_IMPORT virtual eap_status_e read_configure(
   634 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H virtual eap_status_e read_configure(
   614 		const eap_configuration_field_c * const field,
   635 		const eap_configuration_field_c * const field,
   615 		eap_variable_data_c * const data);
   636 		eap_variable_data_c * const data);
   616 
   637 
   617 	// This is documented in abs_eap_base_type_c::write_configure().
   638 	// This is documented in abs_eap_base_type_c::write_configure().
   618 	EAP_FUNC_IMPORT virtual eap_status_e write_configure(
   639 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H virtual eap_status_e write_configure(
   619 		const eap_configuration_field_c * const field,
   640 		const eap_configuration_field_c * const field,
   620 		eap_variable_data_c * const data);
   641 		eap_variable_data_c * const data);
   621 
   642 
   622 	// This is documented in abs_eap_stack_interface_c::set_is_valid().
   643 	// This is documented in abs_eap_stack_interface_c::set_is_valid().
   623 	EAP_FUNC_IMPORT void set_is_valid();
   644 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void set_is_valid();
   624 
   645 
   625 	// This is documented in abs_eap_stack_interface_c::get_is_valid().
   646 	// This is documented in abs_eap_stack_interface_c::get_is_valid().
   626 	EAP_FUNC_IMPORT bool get_is_valid();
   647 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H bool get_is_valid();
   627 
   648 
   628 	// This is documented in abs_eap_base_type_c::state_notification().
   649 	// This is documented in abs_eap_base_type_c::state_notification().
   629 	EAP_FUNC_IMPORT void state_notification(
   650 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void state_notification(
   630 		const abs_eap_state_notification_c * const state);
   651 		const abs_eap_state_notification_c * const state);
   631 
   652 
   632 	// See abs_eap_base_timer_c::timer_expired().
   653 	// See abs_eap_base_timer_c::timer_expired().
   633 	EAP_FUNC_IMPORT eap_status_e timer_expired(
   654 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e timer_expired(
   634 		const u32_t id, void *data);
   655 		const u32_t id, void *data);
   635 
   656 
   636 	// See abs_eap_base_timer_c::timer_delete_data().
   657 	// See abs_eap_base_timer_c::timer_delete_data().
   637 	EAP_FUNC_IMPORT eap_status_e timer_delete_data(
   658 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e timer_delete_data(
   638 		const u32_t id, void *data);
   659 		const u32_t id, void *data);
   639 
   660 
   640 	/**
   661 	/**
   641 	 * eap_core_map_c class increases reference count each time reference to stored object is get.
   662 	 * eap_core_map_c class increases reference count each time reference to stored object is get.
   642 	 * Here is always just one state for one session so no references are used.
   663 	 * Here is always just one state for one session so no references are used.
   643 	 */
   664 	 */
   644 	EAP_FUNC_IMPORT void object_increase_reference_count();
   665 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void object_increase_reference_count();
   645 
   666 
   646 	/**
   667 	/**
   647 	 * eap_core_map_c class increases reference count each time reference to stored object is get.
   668 	 * eap_core_map_c class increases reference count each time reference to stored object is get.
   648 	 *  Here is always just one state for one session so no references are used.
   669 	 *  Here is always just one state for one session so no references are used.
   649 	 */
   670 	 */
   650 	EAP_FUNC_IMPORT u32_t object_decrease_reference_count();
   671 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H u32_t object_decrease_reference_count();
   651 
   672 
   652 	/**
   673 	/**
   653 	 * @{ Add configuration of accepted EAP-types. }
   674 	 * @{ Add configuration of accepted EAP-types. }
   654 	 */
   675 	 */
   655 	// This is documented in abs_eap_base_type_c::check_is_valid_eap_type().
   676 	// This is documented in abs_eap_base_type_c::check_is_valid_eap_type().
   656 	EAP_FUNC_IMPORT eap_status_e check_is_valid_eap_type(const eap_type_value_e eap_type);
   677 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e check_is_valid_eap_type(const eap_type_value_e eap_type);
   657 
   678 
   658 	// This is commented in abs_eap_base_type_c::get_eap_type_list().
   679 	// This is commented in abs_eap_base_type_c::get_eap_type_list().
   659 	EAP_FUNC_IMPORT eap_status_e get_eap_type_list(
   680 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e get_eap_type_list(
   660 		eap_array_c<eap_type_value_e> * const eap_type_list);
   681 		eap_array_c<eap_type_value_e> * const eap_type_list);
   661 
   682 
   662 	/**
   683 	/**
   663 	 * Gets flag whether this session is marked removed.
   684 	 * Gets flag whether this session is marked removed.
   664 	 * Session is removed later if it is not reused.
   685 	 * Session is removed later if it is not reused.
   665 	 */
   686 	 */
   666 	EAP_FUNC_IMPORT bool get_marked_removed();
   687 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H bool get_marked_removed();
   667 
   688 
   668 	/**
   689 	/**
   669 	 * Marks this session removed.
   690 	 * Marks this session removed.
   670 	 * Session is removed later if it is not reused.
   691 	 * Session is removed later if it is not reused.
   671 	 */
   692 	 */
   672 	EAP_FUNC_IMPORT void set_marked_removed();
   693 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void set_marked_removed();
   673 
   694 
   674 	/**
   695 	/**
   675 	 * Marks this session not removed.
   696 	 * Marks this session not removed.
   676 	 * Session is not removed it is reused.
   697 	 * Session is not removed it is reused.
   677 	 */
   698 	 */
   678 	EAP_FUNC_IMPORT void unset_marked_removed();
   699 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void unset_marked_removed();
   679 
   700 
   680 	/**
   701 	/**
   681 	 * Prevents all notifications.
   702 	 * Prevents all notifications.
   682 	 */
   703 	 */
   683 	EAP_FUNC_IMPORT void ignore_notifications();
   704 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H void ignore_notifications();
   684 
   705 
   685 	/**
   706 	/**
   686 	 * This function must reset the state of object to same as 
   707 	 * This function must reset the state of object to same as 
   687 	 * state was after the configure() function call.
   708 	 * state was after the configure() function call.
   688 	 * If object reset succeeds this function must return eap_status_ok.
   709 	 * If object reset succeeds this function must return eap_status_ok.
   689 	 * If object reset fails this function must return corresponding error status.
   710 	 * If object reset fails this function must return corresponding error status.
   690 	 * @return This function returns the status of reset operation.
   711 	 * @return This function returns the status of reset operation.
   691 	 */
   712 	 */
   692 	EAP_FUNC_IMPORT eap_status_e reset();
   713 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e reset();
   693 
   714 
   694 	// This is documented in abs_eap_base_type_c::complete_eap_identity_query().
   715 	// This is documented in abs_eap_base_type_c::complete_eap_identity_query().
   695 	EAP_FUNC_IMPORT eap_status_e complete_eap_identity_query(
   716 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e complete_eap_identity_query(
   696 		const eap_am_network_id_c * const send_network_id,
   717 		const eap_am_network_id_c * const send_network_id,
   697 		const eap_variable_data_c * const identity,
   718 		const eap_variable_data_c * const identity,
   698 		const u8_t eap_identifier);
   719 		const u8_t eap_identifier);
   699 
   720 
   700 	// This is documented in abs_eap_base_type_c::get_saved_eap_identity().
   721 	// This is documented in abs_eap_base_type_c::get_saved_eap_identity().
   701 	EAP_FUNC_IMPORT eap_status_e get_saved_eap_identity(eap_variable_data_c * const identity);
   722 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e get_saved_eap_identity(eap_variable_data_c * const identity);
   702 
   723 
   703 	// This is documented in abs_eap_base_type_c::set_session_timeout().
   724 	// This is documented in abs_eap_base_type_c::set_session_timeout().
   704 	EAP_FUNC_IMPORT eap_status_e set_session_timeout(
   725 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e set_session_timeout(
   705 		const u32_t session_timeout_ms);
   726 		const u32_t session_timeout_ms);
   706 
   727 
   707 	// This is documented in abs_eap_base_type_c::set_timer().
   728 	// This is documented in abs_eap_base_type_c::set_timer().
   708 	EAP_FUNC_IMPORT eap_status_e set_timer(
   729 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e set_timer(
   709 		abs_eap_base_timer_c * const p_initializer, 
   730 		abs_eap_base_timer_c * const p_initializer, 
   710 		const u32_t p_id, 
   731 		const u32_t p_id, 
   711 		void * const p_data,
   732 		void * const p_data,
   712 		const u32_t p_time_ms);
   733 		const u32_t p_time_ms);
   713 
   734 
   714 	// This is documented in abs_eap_base_type_c::cancel_timer().
   735 	// This is documented in abs_eap_base_type_c::cancel_timer().
   715 	EAP_FUNC_IMPORT eap_status_e cancel_timer(
   736 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e cancel_timer(
   716 		abs_eap_base_timer_c * const p_initializer, 
   737 		abs_eap_base_timer_c * const p_initializer, 
   717 		const u32_t p_id);
   738 		const u32_t p_id);
   718 
   739 
   719 	// This is documented in abs_eap_base_type_c::set_authentication_role().
   740 	// This is documented in abs_eap_base_type_c::set_authentication_role().
   720 	EAP_FUNC_IMPORT eap_status_e set_authentication_role(const bool when_true_set_client);
   741 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e set_authentication_role(const bool when_true_set_client);
   721 
   742 
   722 	// This is documented in abs_eap_base_type_c::add_rogue_ap().
   743 	// This is documented in abs_eap_base_type_c::add_rogue_ap().
   723 	EAP_FUNC_IMPORT eap_status_e add_rogue_ap(eap_array_c<eap_rogue_ap_entry_c> & rogue_ap_list);
   744 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H eap_status_e add_rogue_ap(eap_array_c<eap_rogue_ap_entry_c> & rogue_ap_list);
   724 
   745 
   725 	// This is documented in abs_eap_base_type_c::get_is_tunneled().
   746 	// This is documented in abs_eap_base_type_c::get_is_tunneled().
   726 	EAP_FUNC_IMPORT bool get_is_tunneled_eap() const;
   747 	EAP_FUNC_VISIBILITY_DUMMY_EAP_CORE_H bool get_is_tunneled_eap() const;
   727 
   748 
   728 	//--------------------------------------------------
   749 	//--------------------------------------------------
   729 }; // class dummy_eap_core_c
   750 }; // class dummy_eap_core_c
   730 
   751 
   731 
   752