eapol/eapol_framework/eapol_common/type/tls_peap/eap/include/eap_type_tls_peap_header.h
changeset 49 43351a4f2da3
parent 26 9abfd4f00d37
equal deleted inserted replaced
47:712b4ffd76bb 49:43351a4f2da3
    23 #define _EAP_TLS_PEAP_HEADER_H_
    23 #define _EAP_TLS_PEAP_HEADER_H_
    24 
    24 
    25 #include "eap_tools.h"
    25 #include "eap_tools.h"
    26 #include "eap_header.h"
    26 #include "eap_header.h"
    27 #include "tls_peap_types.h"
    27 #include "tls_peap_types.h"
       
    28 #include "eap_am_export.h"
       
    29 // Start: added by script change_export_macros.sh.
       
    30 #if defined(EAP_NO_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H)
       
    31 	#define EAP_CLASS_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_NONSHARABLE 
       
    32 	#define EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H 
       
    33 	#define EAP_C_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H 
       
    34 	#define EAP_FUNC_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H 
       
    35 	#define EAP_C_FUNC_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H 
       
    36 #elif defined(EAP_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H)
       
    37 	#define EAP_CLASS_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_EXPORT 
       
    38 	#define EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_FUNC_EXPORT 
       
    39 	#define EAP_C_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_C_FUNC_EXPORT 
       
    40 	#define EAP_FUNC_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H EAP_FUNC_EXPORT 
       
    41 	#define EAP_C_FUNC_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H EAP_C_FUNC_EXPORT 
       
    42 #else
       
    43 	#define EAP_CLASS_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_IMPORT 
       
    44 	#define EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_FUNC_IMPORT 
       
    45 	#define EAP_C_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H EAP_C_FUNC_IMPORT 
       
    46 	#define EAP_FUNC_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H 
       
    47 	#define EAP_C_FUNC_EXPORT_EAP_TYPE_TLS_PEAP_HEADER_H 
       
    48 #endif
       
    49 // End: added by script change_export_macros.sh.
       
    50 
    28 
    51 
    29 /** @file */
    52 /** @file */
    30 
    53 
    31 const u32_t TLS_PEAP_FIRST_SEQUENCE = 1u;
    54 const u32_t TLS_PEAP_FIRST_SEQUENCE = 1u;
    32 const u8_t TLS_PEAP_NAI_AT_BYTE = '@';
    55 const u8_t TLS_PEAP_NAI_AT_BYTE = '@';
    62  * |     TLS Message Length  opt.  |       TLS Data...
    85  * |     TLS Message Length  opt.  |       TLS Data...
    63  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    86  * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    64  * @endcode
    87  * @endcode
    65  *
    88  *
    66  */
    89  */
    67 class EAP_EXPORT eap_tls_peap_header_c
    90 class EAP_CLASS_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_tls_peap_header_c
    68 : public eap_header_base_c
    91 : public eap_header_base_c
    69 {
    92 {
    70 private:
    93 private:
    71 	//--------------------------------------------------
    94 	//--------------------------------------------------
    72 
    95 
   106 		m_flag_mask_reserved = 0x1c,
   129 		m_flag_mask_reserved = 0x1c,
   107 		m_flag_mask_version = 0x03,
   130 		m_flag_mask_version = 0x03,
   108 	};
   131 	};
   109 
   132 
   110 
   133 
   111 	EAP_FUNC_IMPORT virtual ~eap_tls_peap_header_c();
   134 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H virtual ~eap_tls_peap_header_c();
   112 
   135 
   113 	// 
   136 	// 
   114 	EAP_FUNC_IMPORT eap_tls_peap_header_c(
   137 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_tls_peap_header_c(
   115 		abs_eap_am_tools_c * const tools,
   138 		abs_eap_am_tools_c * const tools,
   116 		u8_t * const header_begin,
   139 		u8_t * const header_begin,
   117 		const u32_t header_buffer_length);
   140 		const u32_t header_buffer_length);
   118 
   141 
   119 	EAP_FUNC_IMPORT eap_code_value_e get_eap_code() const;
   142 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_code_value_e get_eap_code() const;
   120 
   143 
   121 	EAP_FUNC_IMPORT u8_t get_eap_identifier() const;
   144 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t get_eap_identifier() const;
   122 
   145 
   123 	EAP_FUNC_IMPORT u16_t get_eap_length() const;
   146 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u16_t get_eap_length() const;
   124 
   147 
   125 	EAP_FUNC_IMPORT eap_type_value_e get_eap_type() const;
   148 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_type_value_e get_eap_type() const;
   126 
   149 
   127 	EAP_FUNC_IMPORT u16_t get_data_length() const;
   150 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u16_t get_data_length() const;
   128 
   151 
   129 	EAP_FUNC_IMPORT u32_t get_tls_min_header_length() const;
   152 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u32_t get_tls_min_header_length() const;
   130 
   153 
   131 	EAP_FUNC_IMPORT static u32_t get_tls_max_header_length();
   154 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H static u32_t get_tls_max_header_length();
   132 
   155 
   133 	EAP_FUNC_IMPORT u32_t get_header_length() const;
   156 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u32_t get_header_length() const;
   134 
   157 
   135 	EAP_FUNC_IMPORT u32_t get_tls_flags_offset() const;
   158 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u32_t get_tls_flags_offset() const;
   136 
   159 
   137 	EAP_FUNC_IMPORT u32_t get_tls_length_offset() const;
   160 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u32_t get_tls_length_offset() const;
   138 
   161 
   139 	EAP_FUNC_IMPORT u32_t get_start_offset_of_data() const;
   162 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u32_t get_start_offset_of_data() const;
   140 
   163 
   141 	EAP_FUNC_IMPORT u8_t * get_data_offset(
   164 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t * get_data_offset(
   142 		abs_eap_am_tools_c * const m_am_tools,
   165 		abs_eap_am_tools_c * const m_am_tools,
   143 		const u32_t offset,
   166 		const u32_t offset,
   144 		const u32_t contignuous_bytes) const;
   167 		const u32_t contignuous_bytes) const;
   145 
   168 
   146 
   169 
   147 	EAP_FUNC_IMPORT u8_t * get_data(
   170 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t * get_data(
   148 		abs_eap_am_tools_c * const m_am_tools,
   171 		abs_eap_am_tools_c * const m_am_tools,
   149 		const u32_t contignuous_bytes) const;
   172 		const u32_t contignuous_bytes) const;
   150 
   173 
   151 
   174 
   152 	EAP_FUNC_IMPORT u8_t * get_tls_flags() const;
   175 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t * get_tls_flags() const;
   153 
   176 
   154 	EAP_FUNC_IMPORT bool get_tls_flag_bit(
   177 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H bool get_tls_flag_bit(
   155 		const u32_t mask) const;
   178 		const u32_t mask) const;
   156 
   179 
   157 	EAP_FUNC_IMPORT u8_t get_tls_flag_value(
   180 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t get_tls_flag_value(
   158 		const u32_t mask,
   181 		const u32_t mask,
   159 		const u32_t shift) const;
   182 		const u32_t shift) const;
   160 
   183 
   161 	EAP_FUNC_IMPORT bool get_flag_tls_length_included() const;
   184 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H bool get_flag_tls_length_included() const;
   162 
   185 
   163 	EAP_FUNC_IMPORT bool get_flag_more_fragments() const;
   186 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H bool get_flag_more_fragments() const;
   164 	
   187 	
   165 	EAP_FUNC_IMPORT bool get_flag_start() const;
   188 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H bool get_flag_start() const;
   166 	
   189 	
   167 	EAP_FUNC_IMPORT u8_t get_flag_reserved() const;
   190 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t get_flag_reserved() const;
   168 
   191 
   169 	EAP_FUNC_IMPORT u8_t get_flag_version() const;
   192 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H u8_t get_flag_version() const;
   170 
   193 
   171 	EAP_FUNC_IMPORT eap_status_e get_tls_message_length(
   194 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_status_e get_tls_message_length(
   172 		u32_t * const tls_length) const;
   195 		u32_t * const tls_length) const;
   173 
   196 
   174 
   197 
   175 	EAP_FUNC_IMPORT eap_status_e check_header(
   198 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_status_e check_header(
   176 		abs_eap_am_tools_c * const tools,
   199 		abs_eap_am_tools_c * const tools,
   177 		const eap_type_value_e required_eap_type,
   200 		const eap_type_value_e required_eap_type,
   178 		const bool is_client_when_true,
   201 		const bool is_client_when_true,
   179 		const peap_version_e peap_version,
   202 		const peap_version_e peap_version,
   180 		const bool check_peap_version_when_true) const;
   203 		const bool check_peap_version_when_true) const;
   181 
   204 
   182 	EAP_FUNC_IMPORT eap_const_string get_code_string() const;
   205 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_const_string get_code_string() const;
   183 
   206 
   184 	EAP_FUNC_IMPORT eap_const_string get_eap_type_string() const;
   207 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H eap_const_string get_eap_type_string() const;
   185 
   208 
   186 	EAP_FUNC_IMPORT void set_eap_code(const eap_code_value_e p_code);
   209 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_eap_code(const eap_code_value_e p_code);
   187 
   210 
   188 	EAP_FUNC_IMPORT void set_eap_identifier(const u8_t p_identifier);
   211 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_eap_identifier(const u8_t p_identifier);
   189 
   212 
   190 	EAP_FUNC_IMPORT void set_eap_length(
   213 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_eap_length(
   191 		const u16_t p_length,
   214 		const u16_t p_length,
   192 		const bool expanded_type_when_true);
   215 		const bool expanded_type_when_true);
   193 
   216 
   194 	EAP_FUNC_IMPORT void set_eap_type(
   217 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_eap_type(
   195 		const eap_type_value_e p_type,
   218 		const eap_type_value_e p_type,
   196 		const bool expanded_type_when_true);
   219 		const bool expanded_type_when_true);
   197 
   220 
   198 
   221 
   199 	EAP_FUNC_IMPORT void set_tls_flag_value(
   222 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_tls_flag_value(
   200 		const u8_t value,
   223 		const u8_t value,
   201 		const u32_t mask,
   224 		const u32_t mask,
   202 		const u32_t shift) const;
   225 		const u32_t shift) const;
   203 
   226 
   204 	EAP_FUNC_IMPORT void set_tls_flag_bit(const bool flag, u32_t mask) const;
   227 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_tls_flag_bit(const bool flag, u32_t mask) const;
   205 
   228 
   206 	EAP_FUNC_IMPORT void set_flag_reserved(const u8_t reserved);
   229 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_flag_reserved(const u8_t reserved);
   207 
   230 
   208 	EAP_FUNC_IMPORT void set_flag_version(const u8_t version);
   231 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_flag_version(const u8_t version);
   209 
   232 
   210 	EAP_FUNC_IMPORT void set_flag_tls_length_included(const bool tls_length_included);
   233 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_flag_tls_length_included(const bool tls_length_included);
   211 
   234 
   212 	EAP_FUNC_IMPORT void set_flag_more_fragments(const bool more_fragments);
   235 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_flag_more_fragments(const bool more_fragments);
   213 
   236 
   214 	EAP_FUNC_IMPORT void set_flag_start(const bool start);
   237 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_flag_start(const bool start);
   215 
   238 
   216 
   239 
   217 	EAP_FUNC_IMPORT void set_data_length(
   240 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_data_length(
   218 		const u32_t p_data_length,
   241 		const u32_t p_data_length,
   219 		const bool expanded_type_when_true);
   242 		const bool expanded_type_when_true);
   220 
   243 
   221 	EAP_FUNC_IMPORT void set_tls_message_length(const u32_t tls_length);
   244 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void set_tls_message_length(const u32_t tls_length);
   222 
   245 
   223 
   246 
   224 	EAP_FUNC_IMPORT void reset_header(
   247 	EAP_FUNC_VISIBILITY_EAP_TYPE_TLS_PEAP_HEADER_H void reset_header(
   225 		abs_eap_am_tools_c * const m_am_tools,
   248 		abs_eap_am_tools_c * const m_am_tools,
   226 		const eap_type_value_e required_eap_type,
   249 		const eap_type_value_e required_eap_type,
   227 		const u32_t buffer_length,
   250 		const u32_t buffer_length,
   228 		const peap_version_e peap_version,
   251 		const peap_version_e peap_version,
   229 		const bool expanded_type_when_true);
   252 		const bool expanded_type_when_true);