]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
eap: Use pen_t instead of uint32_t for vendor ID
authorTobias Brunner <tobias@strongswan.org>
Thu, 21 Jul 2022 11:06:56 +0000 (13:06 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 21 Sep 2022 11:53:44 +0000 (13:53 +0200)
29 files changed:
src/libcharon/encoding/message.c
src/libcharon/encoding/payloads/eap_payload.c
src/libcharon/encoding/payloads/eap_payload.h
src/libcharon/plugins/eap_aka/eap_aka_peer.c
src/libcharon/plugins/eap_aka/eap_aka_server.c
src/libcharon/plugins/eap_dynamic/eap_dynamic.c
src/libcharon/plugins/eap_gtc/eap_gtc.c
src/libcharon/plugins/eap_identity/eap_identity.c
src/libcharon/plugins/eap_md5/eap_md5.c
src/libcharon/plugins/eap_mschapv2/eap_mschapv2.c
src/libcharon/plugins/eap_peap/eap_peap.c
src/libcharon/plugins/eap_peap/eap_peap_peer.c
src/libcharon/plugins/eap_peap/eap_peap_server.c
src/libcharon/plugins/eap_radius/eap_radius.c
src/libcharon/plugins/eap_sim/eap_sim_peer.c
src/libcharon/plugins/eap_sim/eap_sim_server.c
src/libcharon/plugins/eap_tls/eap_tls.c
src/libcharon/plugins/eap_tnc/eap_tnc.c
src/libcharon/plugins/eap_ttls/eap_ttls.c
src/libcharon/plugins/eap_ttls/eap_ttls_peer.c
src/libcharon/plugins/eap_ttls/eap_ttls_server.c
src/libcharon/plugins/tnc_pdp/tnc_pdp.c
src/libcharon/plugins/xauth_eap/xauth_eap.c
src/libcharon/sa/eap/eap_manager.c
src/libcharon/sa/eap/eap_manager.h
src/libcharon/sa/eap/eap_method.h
src/libcharon/sa/ikev2/authenticators/eap_authenticator.c
src/libstrongswan/eap/eap.c
src/libstrongswan/eap/eap.h

index 5156436f853dcae5981a8169e3b00e72576829a4..89882ac6856f24ffa696433e15729dafd51e76b6 100644 (file)
@@ -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);
index 3a64e8a856cf5aa44a3861aeff336f63bc9e730e..57d510f8c96e59055ddf19d2020855216fe5b1ee 100644 (file)
@@ -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;
index 69925a9a938da9b398cbda1a9705a470a4e5dd4f..8c5188548e6c586fca918c22e389efafb6fd00ab 100644 (file)
@@ -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_ @}*/
index 8cd217d7c723008b35cd9c7aad6a27148df3e6f4..3bdbafc5d9061914a2ced3ac403f5428cdf0dbd4 100644 (file)
@@ -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;
index 21d0fb2f7d56185c017a9ded3671f55ee2a4392d..0712ccc2002873b69edaa00bb390585f6ee1559d 100644 (file)
@@ -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;
index 4edc1c16e67bd6c19905f1cf07debef5dcf39331..2654e18f382d999d42f57e540bbfccab7b4000f7 100644 (file)
@@ -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))
index cc6556494263aa6f3adc604d9ea2eb80c9ead8c3..043fea8d9f7754da1734ec3298402f5e18f5c107 100644 (file)
@@ -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;
index 55c702666242ccb33936782ffedc6c2af9284286..1b8422b7cf17c22ea69c3f31fd7644cd042d2796 100644 (file)
@@ -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;
index 2d3e3c29f62fdf81ecfa07c139b17fb30a39c241..7b0b15772208284565a7a223896338c60afa4fd4 100644 (file)
@@ -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;
index 4e3b05da9a95e30005e840b2578895da559c7c5a..2e14bd9002dc7da5cdc849e1e75ab50598ba7a02 100644 (file)
@@ -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;
index 4ad1e0cdcffa43d559e7feaf1c07655699df49bd..577d7478676c3f1bc3a68d41579b73cd9c2b3784 100644 (file)
@@ -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;
index aef492f16f682a74171b9d08baaa7fdc15439dd3..1350b7876a4c5d88dcb03b572843c111bd02ff19 100644 (file)
@@ -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)
        {
index 691a05b8951cb044a76731aba3b0e43c80274092..f27325df2016187adeed035075d8df8d97900187 100644 (file)
@@ -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)
        {
index c305375e51b58f51795bd68cc9fe0c8c38671be4..ad7f5958123207ec927545954318d1af1bd75004 100644 (file)
@@ -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;
index caed69a45c5cfd61133b55e35b0867446329bc18..83041b9eacbd6cc1a2cd04a249a25a8afbd3f0d6 100644 (file)
@@ -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;
index b1fc0b75dac28f3934a825bd7d85d32d68f829f7..82004bd2b5ae8fd336bd96686a673bbe1a3e5619 100644 (file)
@@ -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;
index d301244e5ff76c81d4a2b18834f2932a7d867a2f..3d34d7a840684b41667b99f505940c6096d9aeae 100644 (file)
@@ -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;
index 2faafb01d7331750dfe54ad613e0215630e63f34..b8dae2e55bdf6ba4faa6d9faa1942f68faff5d79 100644 (file)
@@ -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;
index ea0b8d471fdfa3427a7011a3f582081fa8d0c5d8..d8ad781f09949e0b6785ab7509488e013fee3d6f 100644 (file)
@@ -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;
index 9e2153fe04408481845b2e391d213ce517bd3239..33e53556cd08b0e65cafe91f3a0b62889244ce88 100644 (file)
@@ -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)
        {
index a128246f2a511f840459b7f76a622ac472a2fefa..dce59a55394449ecffab03ae8c1bc0599e167963 100644 (file)
@@ -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,
index 941afce3468239a1b9fcca40dd04fb210f08d86f..d3a6211be5a24c92d500b775ae75f87babe00175 100644 (file)
@@ -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;
index c1225e964aababc898c33671f2ad65f949466dd5..1e7e0cc530416ac10d1acac19b7d1b5edc1f03fc 100644 (file)
@@ -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)
index 4c85b88c15213b5d66c06b9ac6c2bdf43d15b635..35795d59fae24c7f80456f2aa325988e5cdfdeed 100644 (file)
@@ -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;
index 29985a7d60574178cf49b1773ef6e3a02f15deda..ca5835210e54c49164744c0feb1bab9cf769f84e 100644 (file)
@@ -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);
 
index b1fea9369f9feb23efb213554c40d3beec5d2b3d..b28c5cbb3d60aabac340b32ee06bb5c2e2cc9f58 100644 (file)
@@ -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.
index 23930872b370e69a04b3333ad610a16dd8177a9e..ffc41ef3d6fe10fc0feb055abf9422a57210de50 100644 (file)
@@ -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)
index 08b17bdf09636ba7efe8dfaa5d2d9c97b903de6b..cbdf9b68d88d36f8b554825fa89a9dc7a48fbc73 100644 (file)
@@ -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;
index 0907d1ea873a5dd43b61c07a7af89ca98b97715d..b11bcb69a57c5d68f6c77a93bbd48560822e4970 100644 (file)
@@ -28,6 +28,7 @@ typedef enum eap_type_t eap_type_t;
 typedef struct eap_vendor_type_t eap_vendor_type_t;
 
 #include <library.h>
+#include <pen/pen.h>
 
 /**
  * EAP code, type of an EAP message
@@ -99,7 +100,7 @@ struct eap_vendor_type_t {
        /**
         * Vendor Id
         */
-       uint32_t vendor;
+       pen_t vendor;
 };
 
 /**