POP3 State Model

Client POP3 state model

Figure 2: Client POP3 state model

The abstract data model for NTLM POP3 Extension has the following states:

  1. Start:

    This is the state of the client before the POP3_AUTH_NTLM_Initiation_Command is sent.

  2. State 2: sent_authentication_request

    This is the state of the client after the POP3_AUTH_NTLM_Initiation_Command is sent.

  3. State 1: inside_authentication

    This is the state entered by a client after it receives a POP3_NTLM_Supported_Response. In this state, the client initializes the NTLM subsystem and repeats the following steps:

    • Encapsulates the NTLM message, returned by the NTLM subsystem, into a POP3 message.

    • Sends the POP3 message to the Server

    • Waits for a response from the server.

    • De-encapsulates received POP3 message data (if any) from the server and converts it to NTLM message data.

    • Passes it to the NTLM subsystem.

      This state terminates when:

    • The client receives a POP3_AUTH_NTLM_Succeeded_Response or POP3_AUTH_NTLM_Fail_Response.

    • A failure is reported by the NTLM subsystem.

  4.  Stop: completed_authentication.

    This is the state of the client when it exits the inside_authentication state. The rules for exiting the inside_authentication state are defined in Message Processing Events and Sequencing Rules section 3.1.5. The behavior of POP3 in this state is not in the scope of this document—it represents the end state of the authentication protocol.