eapol/eapol_framework/eapol_common/type/aka/include/eap_type_aka_header.h
changeset 52 c23bdf5a328a
parent 33 938269283a16
equal deleted inserted replaced
51:e863583e6720 52:c23bdf5a328a
    23 #define _AKA_HEADER_H_
    23 #define _AKA_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 "eap_header_string.h"
    27 #include "eap_header_string.h"
       
    28 #include "eap_am_export.h"
       
    29 // Start: added by script change_export_macros.sh.
       
    30 #if defined(EAP_NO_EXPORT_EAP_TYPE_AKA_HEADER_H)
       
    31 	#define EAP_CLASS_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_NONSHARABLE 
       
    32 	#define EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H 
       
    33 	#define EAP_C_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H 
       
    34 	#define EAP_FUNC_EXPORT_EAP_TYPE_AKA_HEADER_H 
       
    35 	#define EAP_C_FUNC_EXPORT_EAP_TYPE_AKA_HEADER_H 
       
    36 #elif defined(EAP_EXPORT_EAP_TYPE_AKA_HEADER_H)
       
    37 	#define EAP_CLASS_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_EXPORT 
       
    38 	#define EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_FUNC_EXPORT 
       
    39 	#define EAP_C_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_C_FUNC_EXPORT 
       
    40 	#define EAP_FUNC_EXPORT_EAP_TYPE_AKA_HEADER_H EAP_FUNC_EXPORT 
       
    41 	#define EAP_C_FUNC_EXPORT_EAP_TYPE_AKA_HEADER_H EAP_C_FUNC_EXPORT 
       
    42 #else
       
    43 	#define EAP_CLASS_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_IMPORT 
       
    44 	#define EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_FUNC_IMPORT 
       
    45 	#define EAP_C_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H EAP_C_FUNC_IMPORT 
       
    46 	#define EAP_FUNC_EXPORT_EAP_TYPE_AKA_HEADER_H 
       
    47 	#define EAP_C_FUNC_EXPORT_EAP_TYPE_AKA_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 AKA_FIRST_SEQUENCE = 1u;
    54 const u32_t AKA_FIRST_SEQUENCE = 1u;
    32 const u32_t AKA_PAYLOAD_LENGTH_ALIGN = 4u;
    55 const u32_t AKA_PAYLOAD_LENGTH_ALIGN = 4u;
   100  *  | Attribute payload data ...
   123  *  | Attribute payload data ...
   101  *  +-+-+-+-+-+-+-+-+-+-+-
   124  *  +-+-+-+-+-+-+-+-+-+-+-
   102  * @endcode
   125  * @endcode
   103  *
   126  *
   104  */
   127  */
   105 class EAP_EXPORT aka_payload_AT_header_c
   128 class EAP_CLASS_VISIBILITY_EAP_TYPE_AKA_HEADER_H aka_payload_AT_header_c
   106 : public eap_general_header_base_c
   129 : public eap_general_header_base_c
   107 {
   130 {
   108 private:
   131 private:
   109 	//--------------------------------------------------
   132 	//--------------------------------------------------
   110 
   133 
   126 	//--------------------------------------------------
   149 	//--------------------------------------------------
   127 public:
   150 public:
   128 	//--------------------------------------------------
   151 	//--------------------------------------------------
   129 
   152 
   130 	// 
   153 	// 
   131 	EAP_FUNC_IMPORT virtual ~aka_payload_AT_header_c();
   154 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H virtual ~aka_payload_AT_header_c();
   132 
   155 
   133 	// 
   156 	// 
   134 	EAP_FUNC_IMPORT aka_payload_AT_header_c(
   157 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H aka_payload_AT_header_c(
   135 		abs_eap_am_tools_c * const tools,
   158 		abs_eap_am_tools_c * const tools,
   136 		void * const header_buffer,
   159 		void * const header_buffer,
   137 		const u32_t header_buffer_length);
   160 		const u32_t header_buffer_length);
   138 
   161 
   139 	EAP_FUNC_IMPORT aka_payload_AT_type_e get_current_payload() const;
   162 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H aka_payload_AT_type_e get_current_payload() const;
   140 
   163 
   141 	EAP_FUNC_IMPORT u16_t get_payload_length() const;
   164 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u16_t get_payload_length() const;
   142 
   165 
   143 	EAP_FUNC_IMPORT u16_t get_reserved() const;
   166 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u16_t get_reserved() const;
   144 
   167 
   145 	EAP_FUNC_IMPORT u8_t * get_reserved_pointer(const u32_t contignuous_bytes) const;
   168 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u8_t * get_reserved_pointer(const u32_t contignuous_bytes) const;
   146 
   169 
   147 	EAP_FUNC_IMPORT u32_t get_data_length() const;
   170 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u32_t get_data_length() const;
   148 
   171 
   149 	EAP_FUNC_IMPORT static u16_t get_header_length();
   172 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H static u16_t get_header_length();
   150 
   173 
   151 	EAP_FUNC_IMPORT static u16_t get_max_payload_data_length();
   174 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H static u16_t get_max_payload_data_length();
   152 
   175 
   153 	EAP_FUNC_IMPORT u8_t * get_data(const u32_t contignuous_bytes) const;
   176 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u8_t * get_data(const u32_t contignuous_bytes) const;
   154 
   177 
   155 	EAP_FUNC_IMPORT u8_t * get_data_offset(const u32_t offset, const u32_t contignuous_bytes) const;
   178 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u8_t * get_data_offset(const u32_t offset, const u32_t contignuous_bytes) const;
   156 
   179 
   157 	EAP_FUNC_IMPORT u8_t * get_next_header() const;
   180 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u8_t * get_next_header() const;
   158 
   181 
   159 	// Mostly this is zero.
   182 	// Mostly this is zero.
   160 	// With some attributes this is used for special purposes.
   183 	// With some attributes this is used for special purposes.
   161 	EAP_FUNC_IMPORT void set_reserved(const u16_t reserved);
   184 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void set_reserved(const u16_t reserved);
   162 
   185 
   163 	EAP_FUNC_IMPORT void set_current_payload(const aka_payload_AT_type_e p_current_payload);
   186 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void set_current_payload(const aka_payload_AT_type_e p_current_payload);
   164 
   187 
   165 	EAP_FUNC_IMPORT void set_data_length(const u16_t p_data_length);
   188 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void set_data_length(const u16_t p_data_length);
   166 
   189 
   167 	EAP_FUNC_IMPORT void reset_header(const u16_t data_length);
   190 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void reset_header(const u16_t data_length);
   168 
   191 
   169 	EAP_FUNC_IMPORT static eap_const_string get_payload_AT_string(const aka_payload_AT_type_e payload_type);
   192 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H static eap_const_string get_payload_AT_string(const aka_payload_AT_type_e payload_type);
   170 
   193 
   171 	EAP_FUNC_IMPORT eap_const_string get_payload_AT_string() const;
   194 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H eap_const_string get_payload_AT_string() const;
   172 
   195 
   173 	EAP_FUNC_IMPORT eap_status_e check_header() const;
   196 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H eap_status_e check_header() const;
   174 
   197 
   175 	// 
   198 	// 
   176 	//--------------------------------------------------
   199 	//--------------------------------------------------
   177 }; // class aka_payload_AT_header_c
   200 }; // class aka_payload_AT_header_c
   178 
   201 
   196  *  | Subtype-Data...
   219  *  | Subtype-Data...
   197  *  +-+-+-+-+-+-+-+-+-+-+-
   220  *  +-+-+-+-+-+-+-+-+-+-+-
   198  * @endcode
   221  * @endcode
   199  *
   222  *
   200  */
   223  */
   201 class EAP_EXPORT aka_header_c
   224 class EAP_CLASS_VISIBILITY_EAP_TYPE_AKA_HEADER_H aka_header_c
   202 : public eap_header_base_c
   225 : public eap_header_base_c
   203 {
   226 {
   204 private:
   227 private:
   205 	//--------------------------------------------------
   228 	//--------------------------------------------------
   206 
   229 
   217 	//--------------------------------------------------
   240 	//--------------------------------------------------
   218 public:
   241 public:
   219 	//--------------------------------------------------
   242 	//--------------------------------------------------
   220 
   243 
   221 	// 
   244 	// 
   222 	EAP_FUNC_IMPORT virtual ~aka_header_c();
   245 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H virtual ~aka_header_c();
   223 
   246 
   224 	// 
   247 	// 
   225 	EAP_FUNC_IMPORT aka_header_c(
   248 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H aka_header_c(
   226 		abs_eap_am_tools_c * const tools,
   249 		abs_eap_am_tools_c * const tools,
   227 		u8_t * const header_buffer,
   250 		u8_t * const header_buffer,
   228 		const u32_t header_buffer_length);
   251 		const u32_t header_buffer_length);
   229 
   252 
   230 	EAP_FUNC_IMPORT aka_subtype_e get_subtype() const;
   253 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H aka_subtype_e get_subtype() const;
   231 
   254 
   232 	EAP_FUNC_IMPORT u16_t get_data_length() const;
   255 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u16_t get_data_length() const;
   233 
   256 
   234 	/// This returns the length of EAP-header, EAP-type, subtype and reserved fields.
   257 	/// This returns the length of EAP-header, EAP-type, subtype and reserved fields.
   235 	EAP_FUNC_IMPORT u32_t get_header_length() const;
   258 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u32_t get_header_length() const;
   236 
   259 
   237 	EAP_FUNC_IMPORT u32_t get_sub_type_offset() const;
   260 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u32_t get_sub_type_offset() const;
   238 
   261 
   239 	EAP_FUNC_IMPORT u8_t * get_data_offset(const u32_t offset, const u32_t contignuous_bytes) const;
   262 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u8_t * get_data_offset(const u32_t offset, const u32_t contignuous_bytes) const;
   240 
   263 
   241 
   264 
   242 	EAP_FUNC_IMPORT u8_t * get_data(const u32_t contignuous_bytes) const;
   265 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u8_t * get_data(const u32_t contignuous_bytes) const;
   243 
   266 
   244 
   267 
   245 	EAP_FUNC_IMPORT u16_t get_reserved() const;
   268 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H u16_t get_reserved() const;
   246 
   269 
   247 
   270 
   248 	EAP_FUNC_IMPORT eap_status_e check_header() const;
   271 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H eap_status_e check_header() const;
   249 
   272 
   250 	EAP_FUNC_IMPORT eap_const_string get_subtype_string() const;
   273 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H eap_const_string get_subtype_string() const;
   251 
   274 
   252 	EAP_FUNC_IMPORT eap_const_string get_code_string() const;
   275 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H eap_const_string get_code_string() const;
   253 
   276 
   254 	EAP_FUNC_IMPORT eap_const_string get_eap_type_string() const;
   277 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H eap_const_string get_eap_type_string() const;
   255 
   278 
   256 	EAP_FUNC_IMPORT void set_reserved(const u16_t reserved);
   279 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void set_reserved(const u16_t reserved);
   257 
   280 
   258 	EAP_FUNC_IMPORT void set_subtype(const aka_subtype_e p_subtype);
   281 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void set_subtype(const aka_subtype_e p_subtype);
   259 
   282 
   260 	EAP_FUNC_IMPORT void set_data_length(
   283 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void set_data_length(
   261 		const u32_t p_data_length,
   284 		const u32_t p_data_length,
   262 		const bool expanded_type_when_true);
   285 		const bool expanded_type_when_true);
   263 
   286 
   264 	EAP_FUNC_IMPORT void reset_header(
   287 	EAP_FUNC_VISIBILITY_EAP_TYPE_AKA_HEADER_H void reset_header(
   265 		const u32_t buffer_length,
   288 		const u32_t buffer_length,
   266 		const bool expanded_type_when_true);
   289 		const bool expanded_type_when_true);
   267 
   290 
   268 	// 
   291 	// 
   269 	//--------------------------------------------------
   292 	//--------------------------------------------------