Image Description

Image Description

digraph connection_phase {
AUTH_CHALLENGE [ label = "Initial Handshake Packet" ];
AUTH_CHALLENGE  -> CLIENT_RESPONSE;
AUTH_CHALLENGE  -> SSL_HANDSHAKE;

SSL_HANDSHAKE [ label = "SSL Exchange" ];
SSL_HANDSHAKE     -> CLIENT_RESPONSE;

CLIENT_RESPONSE [ label = "Client Response" ];
CLIENT_RESPONSE -> AUTH_METHOD_SWITCH;
CLIENT_RESPONSE -> AUTHENTICATION_EXCHANGE;
CLIENT_RESPONSE -> CONNECTION_DENIED [ label = "insufficient client \n capabilities" ];

AUTH_METHOD_SWITCH [ label = "Authentication method \n switch" ];
AUTH_METHOD_SWITCH -> AUTHENTICATION_EXCHANGE -> COMMAND_PHASE;
AUTH_METHOD_SWITCH -> NOT_SUPPORTED [ label = "client does not know \n requested auth method" ];

AUTHENTICATION_EXCHANGE [ label = "Authentication exchange \n continuation" ];
AUTHENTICATION_EXCHANGE -> CONNECTION_DENIED;

COMMAND_PHASE     [ shape = "box", label = "OK" ];
CONNECTION_DENIED [ shape = "box", label = "ERR" ];
NOT_SUPPORTED     [ shape = "box", label = "DISCONNECT" ];
}