Beispiel #1
0
    def test_leave_timeout_failure2_with_identiy_response(self):
        self.test_timeout_failure2_from_max_retransmits()
        start_eap_q_size = self.eap_output_queue.qsize()
        start_radius_q_size = self.radius_output_queue.qsize()
        message = IdentityMessage(self.src_mac, 25, Eap.RESPONSE, "host1user")
        self.sm.event(EventMessageReceived(message, self.PORT_ID_MAC))
        self.assertEqual(self.sm.state, self.sm.AAA_IDLE)

        self.assertEqual(self.eap_output_queue.qsize(), start_eap_q_size + 0)
        self.assertEqual(self.radius_output_queue.qsize(),
                         start_radius_q_size + 1)
        self.assertIsInstance(self.radius_output_queue.get_nowait()[0],
                              IdentityMessage)
Beispiel #2
0
    def test_eap_start(self):
        # input EAPStart packet.
        # output EAPIdentityRequest on eap_output_q
        message = EapolStartMessage(self.src_mac)
        self.sm.event(EventMessageReceived(message, self.PORT_ID_MAC))
        self.assertEqual(self.sm.state, self.sm.IDLE)

        self.assertEqual(self.eap_output_queue.qsize(), 1)
        output = self.eap_output_queue.get_nowait()[0]
        self.assertIsInstance(output, IdentityMessage)
        self.assertEqual(self.radius_output_queue.qsize(), 0)

        return output  # Used by test_identity_response
Beispiel #3
0
    def send_eap_to_state_machine(self, eap, dst_mac):
        """sends an eap message to the state machine"""
        self.logger.info("eap EAP(): %s", eap)
        message_id = getattr(eap, 'message_id', -1)
        state_machine = self.get_state_machine(eap.src_mac, dst_mac,
                                               message_id)

        # Check for response to preemptive_eap
        preemptive_eap_message_id = self.port_to_eapol_id.get(str(dst_mac), -2)
        if message_id != -1 and message_id == preemptive_eap_message_id:
            self.logger.debug(
                'eap packet is response to chewie initiated authentication')
            event = EventPreemptiveEAPResponseMessageReceived(
                eap, dst_mac, preemptive_eap_message_id)
        else:
            event = EventMessageReceived(eap, dst_mac)

        state_machine.event(event)
Beispiel #4
0
 def test_identity_request_received_moves_to_challenge_sent(self):
     message = IdentityMessage(MacAddress.from_string("00:12:34:56:78:90"), 1, Eap.RESPONSE, "betelgeuse")
     self.state_machine.event(EventMessageReceived(message))
     self.assertEqual(self.state_machine.state, "challenge sent")
     self.assertEqual(self.state_machine.output_messages.qsize(), 1)
Beispiel #5
0
 def test_packet_received_moves_to_authing_state(self):
     message = EapolStartMessage(MacAddress.from_string("00:12:34:56:78:90"))
     self.state_machine.event(EventMessageReceived(message))
     self.assertEqual(self.state_machine.state, "identity request sent")
     self.assertEqual(self.state_machine.output_messages.qsize(), 1)
Beispiel #6
0
 def send_eap_to_state_machine(self, eap, dst_mac):
     """sends an eap message to the state machine"""
     self.logger.info("eap EAP(): %s", eap)
     state_machine = self.get_state_machine(eap.src_mac, dst_mac)
     event = EventMessageReceived(eap, dst_mac)
     state_machine.event(event)