22.214.171.124.3 PUBLIC_KEY Message
The RunspacePool MUST be in Opened state (section 126.96.36.199.2) when this message is sent. This message MUST be sent from a PowerShell client to a PowerShell server 1) in response to a public key request received from the server (see section 188.8.131.52.5), and 2) when the higher layer requests a Session Key exchange prior to sending secure strings from the client to the server (see section 184.108.40.206).
This message MUST be sent only once from a PowerShell client to a PowerShell server for one RunspacePool.
The Session Key Transfer timer (section 220.127.116.11.8) MUST be started by the PowerShell Remoting Protocol when it sends a PUBLIC_KEY message. There MUST be a unique timer for each PUBLIC_KEY message. Upon receipt of an ENCRYPTED_SESSION_KEY message (section 18.104.22.168) for that PUBLIC_KEY message, the timer MUST be canceled.
The Session Key Transfer timer MUST expire after the number of milliseconds given by the SessionKeyTransferTimeoutms (section 22.214.171.124.8). Upon expiration of this timer, the PowerShell Remoting Protocol MUST close the associated RunspacePool as described in section 126.96.36.199.