eapol/eapol_framework/wapi_common/include/wapi_types.h
changeset 17 8840d3e38314
equal deleted inserted replaced
2:1c7bc153c08e 17:8840d3e38314
       
     1 /*
       
     2 * ============================================================================
       
     3 *  Name        : ./accesssec/eapol/eapol_framework/wapi_common/include/wapi_types.h
       
     4 *  Part of     : WAPI / WAPI       *** Info from the SWAD
       
     5 *  Description : WAPI authentication
       
     6 *  Version     : %version: 39 % << Don't touch! Updated by Synergy at check-out.
       
     7 *
       
     8 *  Copyright © 2001-2009 Nokia.  All rights reserved.
       
     9 *  This material, including documentation and any related computer
       
    10 *  programs, is protected by copyright controlled by Nokia.  All
       
    11 *  rights are reserved.  Copying, including reproducing, storing,
       
    12 *  adapting or translating, any or all of this material requires the
       
    13 *  prior written consent of Nokia.  This material also contains
       
    14 *  confidential information which may not be disclosed to others
       
    15 *  without the prior written consent of Nokia.
       
    16 * ============================================================================
       
    17 * Template version: 4.2
       
    18 */
       
    19 
       
    20 
       
    21 
       
    22 #if !defined(_WAPI_TYPES_H_)
       
    23 #define _WAPI_TYPES_H_
       
    24 
       
    25 #if defined(USE_WAPI_CORE)
       
    26 
       
    27 #include "eap_am_export.h"
       
    28 #include "eap_tools.h"
       
    29 
       
    30 /** @file */
       
    31 
       
    32 //----------------------------------------------------------------------------
       
    33 
       
    34 enum wapi_completion_operation_e
       
    35 {
       
    36 	wapi_completion_operation_none,
       
    37 	wapi_completion_operation_continue_certificate_authentication,
       
    38 };
       
    39 
       
    40 enum wai_protocol_version_e
       
    41 {
       
    42 	wai_protocol_version_none = 0,
       
    43 	wai_protocol_version_1 = 1,
       
    44 };
       
    45 
       
    46 enum wai_protocol_type_e
       
    47 {
       
    48 	wai_protocol_type_none,
       
    49 	wai_protocol_type_wai = 1,
       
    50 };
       
    51 
       
    52 enum wai_protocol_subtype_e
       
    53 {
       
    54 	wai_protocol_subtype_none,
       
    55 	wai_protocol_subtype_pre_authentication_start = 1,
       
    56 	wai_protocol_subtype_stakey_request,
       
    57 	wai_protocol_subtype_authentication_activation,
       
    58 	wai_protocol_subtype_access_authentication_request,
       
    59 	wai_protocol_subtype_access_authentication_response,
       
    60 	wai_protocol_subtype_certificate_authentication_request,
       
    61 	wai_protocol_subtype_certificate_authentication_response,
       
    62 	wai_protocol_subtype_unicast_key_negotiation_request,
       
    63 	wai_protocol_subtype_unicast_key_negotiation_response,
       
    64 	wai_protocol_subtype_unicast_key_negotiation_confirmation,
       
    65 	wai_protocol_subtype_multicast_key_announcement,
       
    66 	wai_protocol_subtype_multicast_key_announcement_response,
       
    67 };
       
    68 
       
    69 /// This enumerates wai_tlv_header_c types.
       
    70 enum wai_tlv_type_e
       
    71 {
       
    72 	wai_tlv_type_none,
       
    73 	wai_tlv_type_signature_attribute              = 1,
       
    74 	wai_tlv_type_echd_parameter                   = 1,
       
    75 	wai_tlv_type_result_of_certificate_validation = 2,
       
    76 	wai_tlv_type_identity_list                    = 3,
       
    77 
       
    78 	wai_tlv_type_first_known = wai_tlv_type_signature_attribute,
       
    79 	wai_tlv_type_last_known = wai_tlv_type_identity_list,
       
    80 };
       
    81 
       
    82 enum wai_certificate_identifier_e
       
    83 {
       
    84 	wai_certificate_identifier_none,
       
    85 	wai_certificate_identifier_x_509_v3 = 1,
       
    86 	wai_certificate_identifier_gbw      = 2,
       
    87 };
       
    88 
       
    89 enum wai_payload_type_e
       
    90 {
       
    91 	wai_payload_type_none,
       
    92 	wai_payload_type_flag, ///< This is type of 1 octet.
       
    93 	wai_payload_type_access_result, ///< This is type of 1 octet.
       
    94 	wai_payload_type_uskid, ///< This is type of 1 octet.
       
    95 	wai_payload_type_mskid_stakeyid, ///< This is type of 1 octet.
       
    96 	wai_payload_type_result, ///< This is type of 1 octet.
       
    97 
       
    98 	wai_payload_type_addid, ///< This is type of 12 octets. Two MAC addresses each 6 octet in length.
       
    99 
       
   100 	wai_payload_type_bkid, ///< This is type of 16 octets.
       
   101 	wai_payload_type_key_announcement_identifier, ///< This is type of 16 octets.
       
   102 	wai_payload_type_data_sequence_number, ///< This is type of 16 octets.
       
   103 
       
   104 	wai_payload_type_message_authentication_code, ///< This is type of 20 octets. Output from HMAC-SHA256.
       
   105 
       
   106 	wai_payload_type_authentication_identifier, ///< This is type of 32 octet.
       
   107 	wai_payload_type_nonce, ///< This is type of 32 octets.
       
   108 
       
   109 	wai_payload_type_key_data, ///< This is type of <1 octet length><length count of octets>
       
   110 
       
   111 	wai_payload_type_wie, ///< This is type of WIE <1 octet Element ID><1 octet length><length count of octets>.
       
   112 
       
   113 	wai_payload_type_echd_parameter, ///< This is type of wai_tlv_header_c.
       
   114 	wai_payload_type_signature_attributes, ///< This is type of wai_tlv_header_c.
       
   115 	wai_payload_type_result_of_certificate_verification, ///< This is type of wai_tlv_header_c.
       
   116 	wai_payload_type_identity_list, ///< This is type of wai_tlv_header_c.
       
   117 	wai_payload_type_optional, ///< This is type of wai_tlv_header_c.
       
   118 
       
   119 	wai_payload_type_certificate, ///< This is type of ec_cs_tlv_header_c.
       
   120 	wai_payload_type_identity, ///< This is type of ec_cs_tlv_header_c.
       
   121 
       
   122 	wai_payload_type_first_known = wai_payload_type_flag,
       
   123 	wai_payload_type_last_known = wai_payload_type_identity,
       
   124 
       
   125 	wai_payload_type_terminator = 0xffffffff,
       
   126 };
       
   127 
       
   128 enum wai_payload_type_size_e
       
   129 {
       
   130 	wai_payload_type_size_none = 0,
       
   131 
       
   132 	wai_payload_type_size_1_octet = 1, ///< This is type class of 1 octet.
       
   133 
       
   134 	wai_payload_type_size_12_octets = 12, ///< This is type class of 12 octets.
       
   135 
       
   136 	wai_payload_type_size_16_octets = 16, ///< This is type class of 16 octets.
       
   137 
       
   138 	wai_payload_type_size_20_octets = 20, ///< This is type class of 20 octets.
       
   139 
       
   140 	wai_payload_type_size_32_octets = 32, ///< This is type class of 32 octet.
       
   141 
       
   142 	wai_payload_type_size_1_octet_length_field = 0x7001, ///< This is type class of <1 octet length><length count of octets>
       
   143 
       
   144 	wai_payload_type_size_wie = 0x7002, ///< This is type of WIE <1 octet Element ID><1 octet length><length count of octets>.
       
   145 
       
   146 	wai_payload_type_size_wai_tlv_header = 0x7003, ///< This is type of wai_tlv_header_c.
       
   147 
       
   148 	wai_payload_type_size_ec_cs_tlv_header = 0x7004, ///< This is type of ec_cs_tlv_header_c.
       
   149 };
       
   150 
       
   151 //----------------------------------------------------------------------------
       
   152 
       
   153 struct wai_payload_type_to_size_map_s
       
   154 {
       
   155 	wai_payload_type_size_e m_size;
       
   156 	wai_payload_type_e       m_type;
       
   157 };
       
   158 
       
   159 const wai_payload_type_to_size_map_s wai_payload_type_to_class_map[] =
       
   160 {
       
   161 	{ wai_payload_type_size_none, wai_payload_type_none },
       
   162 
       
   163 	{ wai_payload_type_size_1_octet, wai_payload_type_flag },
       
   164 	{ wai_payload_type_size_1_octet, wai_payload_type_access_result },
       
   165 	{ wai_payload_type_size_1_octet, wai_payload_type_uskid },
       
   166 	{ wai_payload_type_size_1_octet, wai_payload_type_mskid_stakeyid },
       
   167 	{ wai_payload_type_size_1_octet, wai_payload_type_result },
       
   168 
       
   169 	{ wai_payload_type_size_12_octets, wai_payload_type_addid },
       
   170 
       
   171 	{ wai_payload_type_size_16_octets, wai_payload_type_bkid },
       
   172 	{ wai_payload_type_size_16_octets, wai_payload_type_key_announcement_identifier },
       
   173 	{ wai_payload_type_size_16_octets, wai_payload_type_data_sequence_number },
       
   174 
       
   175 	{ wai_payload_type_size_20_octets, wai_payload_type_message_authentication_code },
       
   176 
       
   177 	{ wai_payload_type_size_32_octets, wai_payload_type_authentication_identifier },
       
   178 	{ wai_payload_type_size_32_octets, wai_payload_type_nonce },
       
   179 
       
   180 	{ wai_payload_type_size_1_octet_length_field, wai_payload_type_key_data },
       
   181 
       
   182 	{ wai_payload_type_size_wie, wai_payload_type_wie },
       
   183 
       
   184 	{ wai_payload_type_size_wai_tlv_header, wai_payload_type_echd_parameter },
       
   185 	{ wai_payload_type_size_wai_tlv_header, wai_payload_type_signature_attributes },
       
   186 	{ wai_payload_type_size_wai_tlv_header, wai_payload_type_result_of_certificate_verification },
       
   187 	{ wai_payload_type_size_wai_tlv_header, wai_payload_type_identity_list },
       
   188 	{ wai_payload_type_size_wai_tlv_header, wai_payload_type_optional },
       
   189 
       
   190 	{ wai_payload_type_size_ec_cs_tlv_header, wai_payload_type_certificate },
       
   191 	{ wai_payload_type_size_ec_cs_tlv_header, wai_payload_type_identity },
       
   192 };
       
   193 
       
   194 //----------------------------------------------------------------------------
       
   195 
       
   196 const wai_payload_type_e required_payloads_authentication_activation[] =
       
   197 {
       
   198 	wai_payload_type_flag,
       
   199 	wai_payload_type_authentication_identifier,
       
   200 	wai_payload_type_identity,
       
   201 	wai_payload_type_certificate,
       
   202 	wai_payload_type_echd_parameter,
       
   203 	wai_payload_type_terminator
       
   204 };
       
   205 
       
   206 const wai_payload_type_e required_payloads_access_authentication_request[] =
       
   207 {
       
   208 	wai_payload_type_flag,
       
   209 	wai_payload_type_authentication_identifier,
       
   210 	wai_payload_type_nonce,
       
   211 	wai_payload_type_key_data,
       
   212 	wai_payload_type_identity,
       
   213 	wai_payload_type_certificate,
       
   214 	wai_payload_type_echd_parameter,
       
   215 	wai_payload_type_optional,
       
   216 	//wai_payload_type_signature_attributes,
       
   217 	wai_payload_type_terminator
       
   218 };
       
   219 
       
   220 const wai_payload_type_e required_payloads_access_authentication_response[] =
       
   221 {
       
   222 	wai_payload_type_flag,
       
   223 	wai_payload_type_nonce,
       
   224 	wai_payload_type_nonce,
       
   225 	wai_payload_type_access_result,
       
   226 	wai_payload_type_key_data,
       
   227 	wai_payload_type_key_data,
       
   228 	wai_payload_type_identity,
       
   229 	wai_payload_type_identity,
       
   230 	wai_payload_type_optional,
       
   231 	//wai_payload_type_signature_attributes,
       
   232 	wai_payload_type_terminator
       
   233 };
       
   234 
       
   235 const wai_payload_type_e required_payloads_certificate_authentication_request[] =
       
   236 {
       
   237 	wai_payload_type_addid,
       
   238 	wai_payload_type_nonce,
       
   239 	wai_payload_type_nonce,
       
   240 	wai_payload_type_certificate,
       
   241 	wai_payload_type_certificate,
       
   242 	wai_payload_type_optional,
       
   243 	wai_payload_type_terminator
       
   244 };
       
   245 
       
   246 const wai_payload_type_e required_payloads_certificate_authentication_response[] =
       
   247 {
       
   248 	wai_payload_type_addid,
       
   249 	wai_payload_type_result_of_certificate_verification,
       
   250 	wai_payload_type_signature_attributes,
       
   251 	wai_payload_type_signature_attributes,
       
   252 	wai_payload_type_terminator
       
   253 };
       
   254 
       
   255 const wai_payload_type_e required_payloads_unicast_key_negotiation_request[] =
       
   256 {
       
   257 	wai_payload_type_flag,
       
   258 	wai_payload_type_bkid,
       
   259 	wai_payload_type_uskid,
       
   260 	wai_payload_type_addid,
       
   261 	wai_payload_type_nonce,
       
   262 	wai_payload_type_terminator
       
   263 };
       
   264 
       
   265 const wai_payload_type_e required_payloads_unicast_key_negotiation_response[] =
       
   266 {
       
   267 	wai_payload_type_flag,
       
   268 	wai_payload_type_bkid,
       
   269 	wai_payload_type_uskid,
       
   270 	wai_payload_type_addid,
       
   271 	wai_payload_type_nonce,
       
   272 	wai_payload_type_nonce,
       
   273 	wai_payload_type_wie,
       
   274 	wai_payload_type_message_authentication_code,
       
   275 	wai_payload_type_terminator
       
   276 };
       
   277 
       
   278 const wai_payload_type_e required_payloads_unicast_key_negotiation_confirmation[] =
       
   279 {
       
   280 	wai_payload_type_flag,
       
   281 	wai_payload_type_bkid,
       
   282 	wai_payload_type_uskid,
       
   283 	wai_payload_type_addid,
       
   284 	wai_payload_type_nonce,
       
   285 	wai_payload_type_wie,
       
   286 	wai_payload_type_message_authentication_code,
       
   287 	wai_payload_type_terminator
       
   288 };
       
   289 
       
   290 const wai_payload_type_e required_payloads_multicast_key_announcement[] =
       
   291 {
       
   292 	wai_payload_type_flag,
       
   293 	wai_payload_type_mskid_stakeyid,
       
   294 	wai_payload_type_uskid,
       
   295 	wai_payload_type_addid,
       
   296 	wai_payload_type_data_sequence_number,
       
   297 	wai_payload_type_key_announcement_identifier,
       
   298 	wai_payload_type_key_data,
       
   299 	wai_payload_type_message_authentication_code,
       
   300 	wai_payload_type_terminator
       
   301 };
       
   302 
       
   303 const wai_payload_type_e required_payloads_multicast_key_announcement_response[] =
       
   304 {
       
   305 	wai_payload_type_flag,
       
   306 	wai_payload_type_mskid_stakeyid,
       
   307 	wai_payload_type_uskid,
       
   308 	wai_payload_type_addid,
       
   309 	wai_payload_type_key_announcement_identifier,
       
   310 	wai_payload_type_message_authentication_code,
       
   311 	wai_payload_type_terminator
       
   312 };
       
   313 
       
   314 //----------------------------------------------------------------------------
       
   315 
       
   316 enum wai_data_flag_mask_e
       
   317 {
       
   318 	wai_data_flag_mask_none                           = 0x00,
       
   319 	wai_data_flag_mask_BK_Rekeying                    = (1u << 0u),
       
   320 	wai_data_flag_mask_Pre_Authentication             = (1u << 1u),
       
   321 	wai_data_flag_mask_Certificate_Validation_Request = (1u << 2u),
       
   322 	wai_data_flag_mask_Optional_Field                 = (1u << 3u),
       
   323 	wai_data_flag_mask_USK_Rekeying                   = (1u << 4u),
       
   324 	wai_data_flag_mask_STAKey_Negotiation             = (1u << 5u),
       
   325 	wai_data_flag_mask_STAKey_Revoking                = (1u << 6u),
       
   326 };
       
   327 
       
   328 enum wai_data_uskid_mask_e
       
   329 {
       
   330 	wai_data_uskid_mask_none  = 0x00,
       
   331 	wai_data_uskid_mask_uskid = (1u << 0u),
       
   332 	wai_data_uskid_mask_mskid = (1u << 0u),
       
   333 };
       
   334 
       
   335 enum wai_unicast_cipher_suite_e
       
   336 {
       
   337 	wai_unicast_cipher_suite_none,
       
   338 	wai_unicast_cipher_suite_SMS4,
       
   339 };
       
   340 
       
   341 enum wapi_core_state_e
       
   342 {
       
   343 	wapi_core_state_none,
       
   344 	wapi_core_state_start_unicast_key_negotiation,
       
   345 	wapi_core_state_start_certificate_negotiation,
       
   346 	wapi_core_state_start_multicast_key_announcement,
       
   347 	wapi_core_state_wait_authentication_activation_message,
       
   348 	wapi_core_state_process_authentication_activation_message,
       
   349 	wapi_core_state_wait_access_authentication_request_message,
       
   350 	wapi_core_state_process_access_authentication_request_message,
       
   351 	wapi_core_state_process_access_authentication_request_message_ASU_signature_trusted_by_AE,
       
   352 	wapi_core_state_process_access_authentication_request_message_AE_signature_trusted_by_ASUE,
       
   353 	wapi_core_state_wait_certificate_authentication_request_message,
       
   354 	wapi_core_state_wait_certificate_authentication_response_message,
       
   355 	wapi_core_state_wait_access_authentication_response_message,
       
   356 	wapi_core_state_process_access_authentication_response_message,
       
   357 	wapi_core_state_process_access_authentication_response_message_ASU_signature,
       
   358 	wapi_core_state_wait_unicast_key_negotiation_request_message,
       
   359 	wapi_core_state_wait_unicast_key_negotiation_response_message,
       
   360 	wapi_core_state_wait_unicast_key_negotiation_confirmation_message,
       
   361 	wapi_core_state_wait_multicast_announcement_message,
       
   362 	wapi_core_state_wait_multicast_announcement_response_message,
       
   363 	wapi_core_state_authentication_ok,
       
   364 	wapi_core_state_authentication_failed,
       
   365 };
       
   366 
       
   367 enum wapi_negotiation_state_e
       
   368 {
       
   369 	wapi_negotiation_state_none,
       
   370 	wapi_negotiation_state_initial_negotiation,
       
   371 	wapi_negotiation_state_rekeying,
       
   372 };
       
   373 
       
   374 enum wapi_certificate_result_e
       
   375 {
       
   376 	wapi_certificate_result_none                                           = 0xff,
       
   377 	wapi_certificate_result_valid                                          = 0u,
       
   378 	wapi_certificate_result_issuer_is_unknown                              = 1u,
       
   379 	wapi_certificate_result_certificate_is_based_on_an_untrusted_root      = 2u,
       
   380 	wapi_certificate_result_certificate_is_not_time_valid                  = 3u,
       
   381 	wapi_certificate_result_certificate_have_not_a_valid_signature         = 4u,
       
   382 	wapi_certificate_result_certificate_is_revoked                         = 5u,
       
   383 	wapi_certificate_result_certificate_is_not_valid_for_proposed_usage    = 6u,
       
   384 	wapi_certificate_result_revocation_state_of_the_certificate_is_unknown = 7u,
       
   385 };
       
   386 
       
   387 enum wapi_access_result_e
       
   388 {
       
   389 	wapi_access_result_none                            = 0xff,
       
   390 	wapi_access_result_successfull_access              = 0u,
       
   391 	wapi_access_result_certificate_cannot_be_verified  = 1u,
       
   392 	wapi_access_result_certificate_error               = 2u,
       
   393 	wapi_access_result_prohibition_on_the_local_policy = 3u,
       
   394 };
       
   395 
       
   396 //----------------------------------------------------------------------------
       
   397 
       
   398 const u8_t WAPI_PRESHARED_KEY_LABEL[] = "preshared key expansion for authentication and key negotiation";
       
   399 
       
   400 const u32_t WAPI_PRESHARED_KEY_LABEL_LENGTH = sizeof(WAPI_PRESHARED_KEY_LABEL)-1ul;
       
   401 
       
   402 const u8_t WAPI_CERTIFICATE_KEY_LABEL[] = "base key expansion for key and additional nonce";
       
   403 
       
   404 const u32_t WAPI_CERTIFICATE_KEY_LABEL_LENGTH = sizeof(WAPI_CERTIFICATE_KEY_LABEL)-1ul;
       
   405 
       
   406 const u32_t WAPI_BK_LENGTH = 16ul;
       
   407 
       
   408 
       
   409 const u32_t WAPI_BKID_LENGTH = 16ul;
       
   410 
       
   411 const u32_t WAPI_USKSA_COUNT = 2ul;
       
   412 
       
   413 const u32_t WAPI_MSKSA_COUNT = 2ul;
       
   414 
       
   415 const u32_t WAPI_CHALLENGE_LENGTH = 32ul;
       
   416 
       
   417 const u32_t WAPI_AUTHENTICATION_IDENTIFIER_LENGTH = 32ul;
       
   418 
       
   419 
       
   420 const u8_t WAPI_UNICAST_KEY_LABEL[] = "pairwise key expansion for unicast and additional keys and nonce";
       
   421 
       
   422 const u32_t WAPI_UNICAST_KEY_LABEL_LENGTH = sizeof(WAPI_UNICAST_KEY_LABEL)-1ul;
       
   423 
       
   424 
       
   425 const u8_t WAPI_MULTICAST_KEY_EXPANSION_LABEL[] = "multicast or station key expansion for station unicast and multicast and broadcast";
       
   426 
       
   427 const u32_t WAPI_MULTICAST_KEY_EXPANSION_LABEL_LENGTH = sizeof(WAPI_MULTICAST_KEY_EXPANSION_LABEL)-1ul;
       
   428 
       
   429 
       
   430 const u32_t WAPI_UNICAST_ENCRYPTION_KEY_UEK_LENGTH = 16ul;
       
   431 
       
   432 const u32_t WAPI_UNICAST_INTEGRITY_CHECK_KEY_UCK_LENGTH = 16ul;
       
   433 
       
   434 const u32_t WAPI_MESSAGE_AUTHENTICATION_KEY_MAK_LENGTH = 16ul;
       
   435 
       
   436 const u32_t WAPI_KEY_ENCRYPTION_KEY_KEK_LENGTH = 16ul;
       
   437 
       
   438 const u32_t WAPI_CHALLENGE_SEED_LENGTH = 32ul;
       
   439 
       
   440 const u32_t WAPI_MESSAGE_AUTHENTICATION_CODE_LENGTH = 20ul;
       
   441 
       
   442 const u32_t WAPI_NOTIFICATION_MASTER_KEY_LENGTH = 16ul;
       
   443 
       
   444 const u32_t WAPI_MULTICAST_KEY_LENGTH = 32ul;
       
   445 
       
   446 
       
   447 const u32_t WAPI_UNICAST_KEY_LENGTH
       
   448 	= WAPI_UNICAST_ENCRYPTION_KEY_UEK_LENGTH
       
   449 	+ WAPI_UNICAST_INTEGRITY_CHECK_KEY_UCK_LENGTH
       
   450 	+ WAPI_MESSAGE_AUTHENTICATION_KEY_MAK_LENGTH
       
   451 	+ WAPI_KEY_ENCRYPTION_KEY_KEK_LENGTH
       
   452 	+ WAPI_CHALLENGE_SEED_LENGTH;
       
   453 
       
   454 const u16_t WAI_FIRST_SEQUENCE_NUMBER = 1u;
       
   455 
       
   456 const u16_t WAI_FIRST_FRAGMENT_NUMBER = 0u;
       
   457 
       
   458 const u32_t WIE_HEADER_LENGTH = 2ul*sizeof(u8_t);
       
   459 
       
   460 const u8_t WAPI_ECDH_OID_PARAMETER[] =
       
   461 {
       
   462 	0x06, 0x09, //# U, P, 0x06 = OBJECT IDENTIFIER, length 0x09 = 9 octets
       
   463 	0x2a,     //# = 42 = 40 * 1 + 2 => 1.2
       
   464 	0x81, 0x1c, //# 0x1 * 128^1 + 0x1c = 156 
       
   465 	0xd7, 0x63, //# 0x57 * 128^1 + 0x63 = 11235 
       
   466 	0x01,     //# 0x1 = 1 
       
   467 	0x01,     //# 0x1 = 1 
       
   468 	0x02,     //# 0x2 = 2 
       
   469 	0x01,     //# 0x1 = 1 : full OID = 1.2.156.11235.1.1.2.1 = elliptic curve parameters 
       
   470 };
       
   471 
       
   472 const u8_t WAI_HASH_ALGORITHM_ID = 1u;
       
   473 const u8_t WAI_SIGNATURE_ALGORITHM_ID = 1u;
       
   474 const u8_t WAI_SIGNATURE_PARAMETER_ID = 1u;
       
   475 
       
   476 const u8_t WAI_EC_POINT_TYPE_NO_COMPRESSION_ID = 4u;
       
   477 
       
   478 const u8_t WAPI_ORGANIZATIONAL_UNIT_NAME_OID_PARAMETER[] =
       
   479 {
       
   480 	0x06, 0x03, //# U, P, 0x06 = OBJECT IDENTIFIER, length 0x03 = 3 octets
       
   481 	0x55,       //# = 85 = 40 * 2 + 5 => 2.5
       
   482 	0x04,       //# 0x4 = 4
       
   483 	0x0b,     //# 0xb = 11 : full OID = 2.5.4.11 = organizational unit name 
       
   484 };
       
   485 
       
   486 const u8_t WAPI_COMMON_NAME_OID_PARAMETER[] =
       
   487 {
       
   488 	0x06, 0x03, //# U, P, 0x06 = OBJECT IDENTIFIER, length 0x03 = 3 octets
       
   489 	0x55,       //# = 85 = 40 * 2 + 5 => 2.5
       
   490 	0x04,       //# 0x4 = 4
       
   491 	0x03,     //# 0x3 = 3 : full OID = 2.5.4.3 = common name 
       
   492 };
       
   493 
       
   494 //----------------------------------------------------------------------------
       
   495 
       
   496 #endif //#if defined(USE_WAPI_CORE)
       
   497 
       
   498 #endif //#if !defined(_WAPI_TYPES_H_)
       
   499 
       
   500 
       
   501 // End.