From: Tobias Brunner Date: Thu, 21 Jul 2022 11:06:56 +0000 (+0200) Subject: eap: Use pen_t instead of uint32_t for vendor ID X-Git-Tag: 5.9.8rc1~18^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6e6fcd2f6eaf71244ec676e9f042cfcbcc9426a;p=thirdparty%2Fstrongswan.git eap: Use pen_t instead of uint32_t for vendor ID --- diff --git a/src/libcharon/encoding/message.c b/src/libcharon/encoding/message.c index 5156436f85..89882ac685 100644 --- a/src/libcharon/encoding/message.c +++ b/src/libcharon/encoding/message.c @@ -1335,8 +1335,8 @@ static char* get_string(private_message_t *this, char *buf, int len) if (payload->get_type(payload) == PLV2_EAP) { eap_payload_t *eap = (eap_payload_t*)payload; - uint32_t vendor; eap_type_t type; + pen_t vendor; char method[64] = ""; type = eap->get_type(eap, &vendor); diff --git a/src/libcharon/encoding/payloads/eap_payload.c b/src/libcharon/encoding/payloads/eap_payload.c index 3a64e8a856..57d510f8c9 100644 --- a/src/libcharon/encoding/payloads/eap_payload.c +++ b/src/libcharon/encoding/payloads/eap_payload.c @@ -225,7 +225,7 @@ METHOD(eap_payload_t, get_identifier, uint8_t, * @return the new offset or 0 if failed */ static size_t extract_type(private_eap_payload_t *this, size_t offset, - eap_type_t *type, uint32_t *vendor) + eap_type_t *type, pen_t *vendor) { if (this->data.len > offset) { @@ -246,7 +246,7 @@ static size_t extract_type(private_eap_payload_t *this, size_t offset, } METHOD(eap_payload_t, get_type, eap_type_t, - private_eap_payload_t *this, uint32_t *vendor) + private_eap_payload_t *this, pen_t *vendor) { eap_type_t type; @@ -274,7 +274,7 @@ METHOD(enumerator_t, enumerate_types, bool, type_enumerator_t *this, va_list args) { eap_type_t *type; - uint32_t *vendor; + pen_t *vendor; VA_ARGS_VGET(args, type, vendor); this->offset = extract_type(this->payload, this->offset, type, vendor); @@ -286,7 +286,7 @@ METHOD(eap_payload_t, get_types, enumerator_t*, { type_enumerator_t *enumerator; eap_type_t type; - uint32_t vendor; + pen_t vendor; size_t offset; offset = extract_type(this, 4, &type, &vendor); @@ -391,7 +391,7 @@ eap_payload_t *eap_payload_create_code(eap_code_t code, uint8_t identifier) /** * Write the given type either expanded or not */ -static void write_type(bio_writer_t *writer, eap_type_t type, uint32_t vendor, +static void write_type(bio_writer_t *writer, eap_type_t type, pen_t vendor, bool expanded) { if (expanded) @@ -410,11 +410,11 @@ static void write_type(bio_writer_t *writer, eap_type_t type, uint32_t vendor, * Described in header */ eap_payload_t *eap_payload_create_nak(uint8_t identifier, eap_type_t type, - uint32_t vendor, bool expanded) + pen_t vendor, bool expanded) { enumerator_t *enumerator; eap_type_t reg_type; - uint32_t reg_vendor; + pen_t reg_vendor; bio_writer_t *writer; chunk_t data; bool added_any = FALSE, found_vendor = FALSE; diff --git a/src/libcharon/encoding/payloads/eap_payload.h b/src/libcharon/encoding/payloads/eap_payload.h index 69925a9a93..8c5188548e 100644 --- a/src/libcharon/encoding/payloads/eap_payload.h +++ b/src/libcharon/encoding/payloads/eap_payload.h @@ -81,13 +81,13 @@ struct eap_payload_t { * @param vendor pointer receiving vendor identifier * @return EAP method type, vendor specific if vendor != 0 */ - eap_type_t (*get_type) (eap_payload_t *this, uint32_t *vendor); + eap_type_t (*get_type) (eap_payload_t *this, pen_t *vendor); /** * Enumerate the EAP method types contained in an EAP-Nak (i.e. get_type() * returns EAP_NAK). * - * @return enumerator over (eap_type_t type, uint32_t vendor) + * @return enumerator over (eap_type_t type, pen_t vendor) */ enumerator_t* (*get_types) (eap_payload_t *this); @@ -149,6 +149,6 @@ eap_payload_t *eap_payload_create_code(eap_code_t code, uint8_t identifier); * @return eap_payload_t object */ eap_payload_t *eap_payload_create_nak(uint8_t identifier, eap_type_t type, - uint32_t vendor, bool expanded); + pen_t vendor, bool expanded); #endif /** EAP_PAYLOAD_H_ @}*/ diff --git a/src/libcharon/plugins/eap_aka/eap_aka_peer.c b/src/libcharon/plugins/eap_aka/eap_aka_peer.c index 8cd217d7c7..3bdbafc5d9 100644 --- a/src/libcharon/plugins/eap_aka/eap_aka_peer.c +++ b/src/libcharon/plugins/eap_aka/eap_aka_peer.c @@ -595,7 +595,7 @@ METHOD(eap_method_t, initiate, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_aka_peer_t *this, uint32_t *vendor) + private_eap_aka_peer_t *this, pen_t *vendor) { *vendor = 0; return EAP_AKA; diff --git a/src/libcharon/plugins/eap_aka/eap_aka_server.c b/src/libcharon/plugins/eap_aka/eap_aka_server.c index 21d0fb2f7d..0712ccc200 100644 --- a/src/libcharon/plugins/eap_aka/eap_aka_server.c +++ b/src/libcharon/plugins/eap_aka/eap_aka_server.c @@ -638,7 +638,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_aka_server_t *this, uint32_t *vendor) + private_eap_aka_server_t *this, pen_t *vendor) { *vendor = 0; return EAP_AKA; diff --git a/src/libcharon/plugins/eap_dynamic/eap_dynamic.c b/src/libcharon/plugins/eap_dynamic/eap_dynamic.c index 4edc1c16e6..2654e18f38 100644 --- a/src/libcharon/plugins/eap_dynamic/eap_dynamic.c +++ b/src/libcharon/plugins/eap_dynamic/eap_dynamic.c @@ -83,7 +83,7 @@ CALLBACK(entry_matches_cb, bool, * Load the given EAP method */ static eap_method_t *load_method(private_eap_dynamic_t *this, - eap_type_t type, uint32_t vendor) + eap_type_t type, pen_t vendor) { eap_method_t *method; @@ -191,7 +191,7 @@ METHOD(eap_method_t, process, status_t, private_eap_dynamic_t *this, eap_payload_t *in, eap_payload_t **out) { eap_type_t received_type, type; - uint32_t received_vendor, vendor; + pen_t received_vendor, vendor; received_type = in->get_type(in, &received_vendor); if (received_vendor == 0 && received_type == EAP_NAK) @@ -246,7 +246,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_dynamic_t *this, uint32_t *vendor) + private_eap_dynamic_t *this, pen_t *vendor) { if (this->method) { @@ -356,7 +356,7 @@ static void get_supported_eap_types(private_eap_dynamic_t *this) { enumerator_t *enumerator; eap_type_t type; - uint32_t vendor; + pen_t vendor; enumerator = charon->eap->create_enumerator(charon->eap, EAP_SERVER); while (enumerator->enumerate(enumerator, &type, &vendor)) diff --git a/src/libcharon/plugins/eap_gtc/eap_gtc.c b/src/libcharon/plugins/eap_gtc/eap_gtc.c index cc65564942..043fea8d9f 100644 --- a/src/libcharon/plugins/eap_gtc/eap_gtc.c +++ b/src/libcharon/plugins/eap_gtc/eap_gtc.c @@ -186,7 +186,7 @@ METHOD(eap_method_t, process_server, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_gtc_t *this, uint32_t *vendor) + private_eap_gtc_t *this, pen_t *vendor) { *vendor = 0; return EAP_GTC; diff --git a/src/libcharon/plugins/eap_identity/eap_identity.c b/src/libcharon/plugins/eap_identity/eap_identity.c index 55c7026662..1b8422b7cf 100644 --- a/src/libcharon/plugins/eap_identity/eap_identity.c +++ b/src/libcharon/plugins/eap_identity/eap_identity.c @@ -125,7 +125,7 @@ METHOD(eap_method_t, initiate_server, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_identity_t *this, uint32_t *vendor) + private_eap_identity_t *this, pen_t *vendor) { *vendor = 0; return EAP_IDENTITY; diff --git a/src/libcharon/plugins/eap_md5/eap_md5.c b/src/libcharon/plugins/eap_md5/eap_md5.c index 2d3e3c29f6..7b0b157722 100644 --- a/src/libcharon/plugins/eap_md5/eap_md5.c +++ b/src/libcharon/plugins/eap_md5/eap_md5.c @@ -205,7 +205,7 @@ METHOD(eap_method_t, process_server, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_md5_t *this, uint32_t *vendor) + private_eap_md5_t *this, pen_t *vendor) { *vendor = 0; return EAP_MD5; diff --git a/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c b/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c index 4e3b05da9a..2e14bd9002 100644 --- a/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c +++ b/src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c @@ -1316,7 +1316,7 @@ METHOD(eap_method_t, process_server, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_mschapv2_t *this, uint32_t *vendor) + private_eap_mschapv2_t *this, pen_t *vendor) { *vendor = 0; return EAP_MSCHAPV2; diff --git a/src/libcharon/plugins/eap_peap/eap_peap.c b/src/libcharon/plugins/eap_peap/eap_peap.c index 4ad1e0cdcf..577d747867 100644 --- a/src/libcharon/plugins/eap_peap/eap_peap.c +++ b/src/libcharon/plugins/eap_peap/eap_peap.c @@ -78,7 +78,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_peap_t *this, uint32_t *vendor) + private_eap_peap_t *this, pen_t *vendor) { *vendor = 0; return EAP_PEAP; diff --git a/src/libcharon/plugins/eap_peap/eap_peap_peer.c b/src/libcharon/plugins/eap_peap/eap_peap_peer.c index aef492f16f..1350b7876a 100644 --- a/src/libcharon/plugins/eap_peap/eap_peap_peer.c +++ b/src/libcharon/plugins/eap_peap/eap_peap_peer.c @@ -72,7 +72,7 @@ METHOD(tls_application_t, process, status_t, eap_payload_t *in; eap_code_t code; eap_type_t type, received_type; - uint32_t vendor, received_vendor; + pen_t vendor, received_vendor; status = this->avp->process(this->avp, reader, &data, this->ph1_method->get_identifier(this->ph1_method)); @@ -138,7 +138,7 @@ METHOD(tls_application_t, process, status_t, if (received_vendor) { DBG1(DBG_IKE, "server requested vendor specific EAP method %d-%d " - "(id 0x%02X", received_type, received_vendor, + "(id 0x%02X)", received_type, received_vendor, in->get_identifier(in)); } else @@ -192,7 +192,7 @@ METHOD(tls_application_t, build, status_t, chunk_t data; eap_code_t code; eap_type_t type; - uint32_t vendor; + pen_t vendor; if (this->out) { diff --git a/src/libcharon/plugins/eap_peap/eap_peap_server.c b/src/libcharon/plugins/eap_peap/eap_peap_server.c index 691a05b895..f27325df20 100644 --- a/src/libcharon/plugins/eap_peap/eap_peap_server.c +++ b/src/libcharon/plugins/eap_peap/eap_peap_server.c @@ -168,7 +168,7 @@ METHOD(tls_application_t, process, status_t, eap_payload_t *in; eap_code_t code; eap_type_t type = EAP_NAK, received_type; - uint32_t vendor, received_vendor; + pen_t vendor, received_vendor; status = this->avp->process(this->avp, reader, &data, this->ph1_method->get_identifier(this->ph1_method)); @@ -339,7 +339,7 @@ METHOD(tls_application_t, build, status_t, chunk_t data; eap_code_t code; eap_type_t type; - uint32_t vendor; + pen_t vendor; if (this->ph2_method == NULL && this->start_phase2 && this->start_phase2_id) { diff --git a/src/libcharon/plugins/eap_radius/eap_radius.c b/src/libcharon/plugins/eap_radius/eap_radius.c index c305375e51..ad7f595812 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius.c +++ b/src/libcharon/plugins/eap_radius/eap_radius.c @@ -57,7 +57,7 @@ struct private_eap_radius_t { /** * EAP vendor, if any */ - uint32_t vendor; + pen_t vendor; /** * EAP message identifier @@ -717,7 +717,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_radius_t *this, uint32_t *vendor) + private_eap_radius_t *this, pen_t *vendor) { *vendor = this->vendor; return this->type; diff --git a/src/libcharon/plugins/eap_sim/eap_sim_peer.c b/src/libcharon/plugins/eap_sim/eap_sim_peer.c index caed69a45c..83041b9eac 100644 --- a/src/libcharon/plugins/eap_sim/eap_sim_peer.c +++ b/src/libcharon/plugins/eap_sim/eap_sim_peer.c @@ -651,7 +651,7 @@ METHOD(eap_method_t, initiate, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_sim_peer_t *this, uint32_t *vendor) + private_eap_sim_peer_t *this, pen_t *vendor) { *vendor = 0; return EAP_SIM; diff --git a/src/libcharon/plugins/eap_sim/eap_sim_server.c b/src/libcharon/plugins/eap_sim/eap_sim_server.c index b1fc0b75da..82004bd2b5 100644 --- a/src/libcharon/plugins/eap_sim/eap_sim_server.c +++ b/src/libcharon/plugins/eap_sim/eap_sim_server.c @@ -552,7 +552,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_sim_server_t *this, uint32_t *vendor) + private_eap_sim_server_t *this, pen_t *vendor) { *vendor = 0; return EAP_SIM; diff --git a/src/libcharon/plugins/eap_tls/eap_tls.c b/src/libcharon/plugins/eap_tls/eap_tls.c index d301244e5f..3d34d7a840 100644 --- a/src/libcharon/plugins/eap_tls/eap_tls.c +++ b/src/libcharon/plugins/eap_tls/eap_tls.c @@ -75,7 +75,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_tls_t *this, uint32_t *vendor) + private_eap_tls_t *this, pen_t *vendor) { *vendor = 0; return EAP_TLS; diff --git a/src/libcharon/plugins/eap_tnc/eap_tnc.c b/src/libcharon/plugins/eap_tnc/eap_tnc.c index 2faafb01d7..b8dae2e55b 100644 --- a/src/libcharon/plugins/eap_tnc/eap_tnc.c +++ b/src/libcharon/plugins/eap_tnc/eap_tnc.c @@ -181,7 +181,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_tnc_t *this, uint32_t *vendor) + private_eap_tnc_t *this, pen_t *vendor) { *vendor = 0; return this->type; diff --git a/src/libcharon/plugins/eap_ttls/eap_ttls.c b/src/libcharon/plugins/eap_ttls/eap_ttls.c index ea0b8d471f..d8ad781f09 100644 --- a/src/libcharon/plugins/eap_ttls/eap_ttls.c +++ b/src/libcharon/plugins/eap_ttls/eap_ttls.c @@ -78,7 +78,7 @@ METHOD(eap_method_t, process, status_t, } METHOD(eap_method_t, get_type, eap_type_t, - private_eap_ttls_t *this, uint32_t *vendor) + private_eap_ttls_t *this, pen_t *vendor) { *vendor = 0; return EAP_TTLS; diff --git a/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c b/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c index 9e2153fe04..33e53556cd 100644 --- a/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c +++ b/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c @@ -76,7 +76,7 @@ METHOD(tls_application_t, process, status_t, eap_packet_t *pkt; eap_code_t code; eap_type_t type, received_type; - uint32_t vendor, received_vendor; + pen_t vendor, received_vendor; uint16_t eap_len; size_t eap_pos = 0; bool concatenated = FALSE; @@ -241,7 +241,7 @@ METHOD(tls_application_t, build, status_t, chunk_t data; eap_code_t code; eap_type_t type; - uint32_t vendor; + pen_t vendor; if (this->method == NULL && this->start_phase2) { diff --git a/src/libcharon/plugins/eap_ttls/eap_ttls_server.c b/src/libcharon/plugins/eap_ttls/eap_ttls_server.c index a128246f2a..dce59a5539 100644 --- a/src/libcharon/plugins/eap_ttls/eap_ttls_server.c +++ b/src/libcharon/plugins/eap_ttls/eap_ttls_server.c @@ -164,7 +164,7 @@ METHOD(tls_application_t, process, status_t, eap_payload_t *in; eap_code_t code; eap_type_t type = EAP_NAK, received_type; - uint32_t vendor, received_vendor; + pen_t vendor, received_vendor; status = this->avp->process(this->avp, reader, &data); switch (status) @@ -310,7 +310,7 @@ METHOD(tls_application_t, build, status_t, chunk_t data; eap_code_t code; eap_type_t type; - uint32_t vendor; + pen_t vendor; if (this->method == NULL && this->start_phase2 && lib->settings->get_bool(lib->settings, diff --git a/src/libcharon/plugins/tnc_pdp/tnc_pdp.c b/src/libcharon/plugins/tnc_pdp/tnc_pdp.c index 941afce346..d3a6211be5 100644 --- a/src/libcharon/plugins/tnc_pdp/tnc_pdp.c +++ b/src/libcharon/plugins/tnc_pdp/tnc_pdp.c @@ -478,7 +478,7 @@ static void process_eap(private_tnc_pdp_t *this, radius_message_t *request, eap_payload_t *in, *out = NULL; eap_method_t *method; eap_type_t eap_type; - uint32_t eap_vendor; + pen_t eap_vendor; chunk_t data, message = chunk_empty, msk = chunk_empty; chunk_t user_name = chunk_empty, nas_id = chunk_empty; identification_t *group = NULL; diff --git a/src/libcharon/plugins/xauth_eap/xauth_eap.c b/src/libcharon/plugins/xauth_eap/xauth_eap.c index c1225e964a..1e7e0cc530 100644 --- a/src/libcharon/plugins/xauth_eap/xauth_eap.c +++ b/src/libcharon/plugins/xauth_eap/xauth_eap.c @@ -114,7 +114,7 @@ static bool verify_eap(private_xauth_eap_t *this, eap_method_t *backend) eap_payload_t *request, *response; eap_method_t *frontend; eap_type_t type; - uint32_t vendor; + pen_t vendor; status_t status; if (backend->initiate(backend, &request) != NEED_MORE) diff --git a/src/libcharon/sa/eap/eap_manager.c b/src/libcharon/sa/eap/eap_manager.c index 4c85b88c15..35795d59fa 100644 --- a/src/libcharon/sa/eap/eap_manager.c +++ b/src/libcharon/sa/eap/eap_manager.c @@ -36,7 +36,7 @@ struct eap_entry_t { /** * vendor ID, 0 for default EAP methods */ - uint32_t vendor; + pen_t vendor; /** * Role of the method returned by the constructor, EAP_SERVER or EAP_PEER @@ -71,7 +71,7 @@ struct private_eap_manager_t { }; METHOD(eap_manager_t, add_method, void, - private_eap_manager_t *this, eap_type_t type, uint32_t vendor, + private_eap_manager_t *this, eap_type_t type, pen_t vendor, eap_role_t role, eap_constructor_t constructor) { eap_entry_t *entry = malloc_thing(eap_entry_t); @@ -111,7 +111,7 @@ CALLBACK(filter_methods, bool, { eap_entry_t *entry; eap_type_t *type; - uint32_t *vendor; + pen_t *vendor; VA_ARGS_VGET(args, type, vendor); @@ -152,7 +152,7 @@ METHOD(eap_manager_t, create_enumerator, enumerator_t*, } METHOD(eap_manager_t, create_instance, eap_method_t*, - private_eap_manager_t *this, eap_type_t type, uint32_t vendor, + private_eap_manager_t *this, eap_type_t type, pen_t vendor, eap_role_t role, identification_t *server, identification_t *peer) { enumerator_t *enumerator; diff --git a/src/libcharon/sa/eap/eap_manager.h b/src/libcharon/sa/eap/eap_manager.h index 29985a7d60..ca5835210e 100644 --- a/src/libcharon/sa/eap/eap_manager.h +++ b/src/libcharon/sa/eap/eap_manager.h @@ -45,7 +45,7 @@ struct eap_manager_t { * @param role EAP role of the registered method * @param constructor constructor function, returns an eap_method_t */ - void (*add_method)(eap_manager_t *this, eap_type_t type, uint32_t vendor, + void (*add_method)(eap_manager_t *this, eap_type_t type, pen_t vendor, eap_role_t role, eap_constructor_t constructor); /** @@ -62,7 +62,7 @@ struct eap_manager_t { * even though it is registered as method with this manager). * * @param role EAP role of methods to enumerate - * @return enumerator over (eap_type_t type, uint32_t vendor) + * @return enumerator over (eap_type_t type, pen_t vendor) */ enumerator_t* (*create_enumerator)(eap_manager_t *this, eap_role_t role); @@ -77,7 +77,7 @@ struct eap_manager_t { * @return EAP method instance, NULL if no constructor found */ eap_method_t* (*create_instance)(eap_manager_t *this, eap_type_t type, - uint32_t vendor, eap_role_t role, + pen_t vendor, eap_role_t role, identification_t *server, identification_t *peer); diff --git a/src/libcharon/sa/eap/eap_method.h b/src/libcharon/sa/eap/eap_method.h index b1fea9369f..b28c5cbb3d 100644 --- a/src/libcharon/sa/eap/eap_method.h +++ b/src/libcharon/sa/eap/eap_method.h @@ -97,7 +97,7 @@ struct eap_method_t { * @param vendor pointer receiving vendor identifier for type, 0 for none * @return type of the EAP method */ - eap_type_t (*get_type) (eap_method_t *this, uint32_t *vendor); + eap_type_t (*get_type) (eap_method_t *this, pen_t *vendor); /** * Check if this EAP method authenticates the server. diff --git a/src/libcharon/sa/ikev2/authenticators/eap_authenticator.c b/src/libcharon/sa/ikev2/authenticators/eap_authenticator.c index 23930872b3..ffc41ef3d6 100644 --- a/src/libcharon/sa/ikev2/authenticators/eap_authenticator.c +++ b/src/libcharon/sa/ikev2/authenticators/eap_authenticator.c @@ -115,7 +115,7 @@ struct private_eap_authenticator_t { * load an EAP method */ static eap_method_t *load_method(private_eap_authenticator_t *this, - eap_type_t type, uint32_t vendor, eap_role_t role) + eap_type_t type, pen_t vendor, eap_role_t role) { identification_t *server, *peer, *aaa; auth_cfg_t *auth; @@ -154,7 +154,7 @@ static eap_payload_t* server_initiate_eap(private_eap_authenticator_t *this, auth_cfg_t *auth; eap_type_t type; identification_t *id; - uint32_t vendor; + pen_t vendor; eap_payload_t *out; char *action; @@ -248,7 +248,7 @@ static eap_payload_t* server_process_eap(private_eap_authenticator_t *this, eap_payload_t *in) { eap_type_t type, received_type, conf_type; - uint32_t vendor, received_vendor, conf_vendor; + pen_t vendor, received_vendor, conf_vendor; eap_payload_t *out; auth_cfg_t *auth; @@ -361,7 +361,7 @@ static eap_payload_t* client_process_eap(private_eap_authenticator_t *this, eap_payload_t *in) { eap_type_t type, conf_type; - uint32_t vendor, conf_vendor; + pen_t vendor, conf_vendor; auth_cfg_t *auth; eap_payload_t *out; identification_t *id; @@ -470,7 +470,7 @@ static bool verify_auth(private_eap_authenticator_t *this, message_t *message, auth_cfg_t *auth; keymat_v2_t *keymat; eap_type_t type; - uint32_t vendor; + pen_t vendor; auth_payload = (auth_payload_t*)message->get_payload(message, PLV2_AUTH); @@ -640,7 +640,7 @@ METHOD(authenticator_t, process_client, status_t, } if (this->require_mutual && !this->method->is_mutual(this->method)) { /* we require mutual authentication due to EAP-only */ - uint32_t vendor; + pen_t vendor; DBG1(DBG_IKE, "EAP-only authentication requires a mutual and " "MSK deriving EAP method, but %N is not", @@ -668,7 +668,7 @@ METHOD(authenticator_t, process_client, status_t, case EAP_SUCCESS: { eap_type_t type; - uint32_t vendor; + pen_t vendor; auth_cfg_t *cfg; if (!this->method) @@ -745,7 +745,7 @@ METHOD(authenticator_t, is_mutual, bool, { if (this->method) { - uint32_t vendor; + pen_t vendor; if (this->method->get_type(this->method, &vendor) != EAP_IDENTITY || vendor != 0) diff --git a/src/libstrongswan/eap/eap.c b/src/libstrongswan/eap/eap.c index 08b17bdf09..cbdf9b68d8 100644 --- a/src/libstrongswan/eap/eap.c +++ b/src/libstrongswan/eap/eap.c @@ -142,7 +142,7 @@ eap_vendor_type_t *eap_vendor_type_from_string(char *str) enumerator_t *enumerator; eap_vendor_type_t *result = NULL; eap_type_t type = 0; - uint32_t vendor = 0; + pen_t vendor = 0; char *part, *end; /* parse EAP method string of the form: [eap-]type[-vendor] */ @@ -170,7 +170,7 @@ eap_vendor_type_t *eap_vendor_type_from_string(char *str) } errno = 0; vendor = strtoul(part, &end, 0); - if (*end != '\0' || errno) + if (*end != '\0' || errno || vendor >= PEN_UNASSIGNED) { DBG1(DBG_LIB, "invalid EAP vendor: %s", part); type = 0; diff --git a/src/libstrongswan/eap/eap.h b/src/libstrongswan/eap/eap.h index 0907d1ea87..b11bcb69a5 100644 --- a/src/libstrongswan/eap/eap.h +++ b/src/libstrongswan/eap/eap.h @@ -28,6 +28,7 @@ typedef enum eap_type_t eap_type_t; typedef struct eap_vendor_type_t eap_vendor_type_t; #include +#include /** * EAP code, type of an EAP message @@ -99,7 +100,7 @@ struct eap_vendor_type_t { /** * Vendor Id */ - uint32_t vendor; + pen_t vendor; }; /**