3.2.7.2 Client-Side Interface with HTTPS

When the HTTPS layer establishes a successful HTTPS connection, it sends this event to the SSTP layer along with the hash of the server's certificate. The SSTP client stores the hash in the ClientCertificateHash state variable (described in section 3.2.1).

When the client receives an SSTP data packet from the HTTPS layer, the client MUST:

  • Remove the SSTP data header (section 2.2.3) and extract the data. The extracted data is the higher-layer payload; that is, the PPP frame.

  • Check the PPP frame type (section 3.1.7) and perform the following steps.

    • If the PPP frame is a control frame, the client checks if CurrentState is set to Client_Connect_Ack_Received or Client_Call_Connected. If the condition is true, the client sends the data to PPP layer. Else, the client drops the SSTP data packet.

    • If the PPP frame is a data frame, the client checks if CurrentState is set to Client_Call_Connected. If the condition is true, the client sends the data to the PPP layer. Else, the client drops the SSTP data packet.