3.2.7.1 TLS Negotiation Complete

After the TLS implementation reports that negotiation has completed, the TLS Negotiation Complete MUST be set to true. The Requestor MUST do the following:

  • Set the Group Connect State datum to "TLS Connected".

  • If the local node does not have a GMC and the P2P Grouping Version is 1.0, it MUST abort the connection.

  • If the local node does not have a GMC and the P2P Grouping Version is 1.1, and hence is using password-based authentication, it MUST:

    • Build and send a message containing the Hello message and empty Password message (Password Length = 0x0)

  • Otherwise, if the local GMC is expired (the GMC's NotAfter time is earlier than UTC), it MUST build a Hello message and do the following:

    • Pass it to the TLS layer for processing.

    • Pass the message returned by the TLS layer to P2P Graphing to be sent.

  • Otherwise, it MUST do the following:

    • Build a message containing the Hello message and MyGMC message containing the local GMC chain.

    • Pass the compound message to the TLS layer for processing.

    • Pass the processed message returned by the TLS layer to P2P Graphing to be sent.

    • Set the Group Connect State datum to "Hello Sent" once the Hello message (Hello, Hello + MyGMC, or Hello + Password) is sent.

The compound message format is defined in section 2.2.2.