TsgcWebSocketClient | SChannel Get Connection Info

클라이언트가 보안 서버에 연결되면, 사용 중인 TLS 버전(TLS 1.2, TLS 1.3 등), 사용된 cipher, 강도 등에 대한 정보를 요청할 수 있습니다.

 

이 정보에 액세스하려면 SChannel Handler의 GetInfo 함수를 호출하십시오. SChannel Handler가 생성된 후 호출되는 OnSSLAfterCreateHandler 메서드를 사용하여 SSL Handler에 액세스할 수 있습니다. 클라이언트가 서버에 연결된 후 SSL Handler가 할당되어 있으면 GetInfo 함수를 호출하고, 성공하면 연결 데이터를 반환합니다.

 


oClient = new TsgcWebSocketClient();
oClient->URL = "wss://www.esegece.com:2053";
oClient->TLSOptions->Version = tls1_2;
oClient->TLSOptions->IOHandler = iohSChannel;
oClient->OnSSLAfterCreateHandler = OnSSLAfterCreateHandlerEvent;
oClient->OnConnect = OnConnectEvent;
oClient->Active = true;
void OnSSLAfterCreateHandlerEvent(TObject *Sender, TwsSSLHandler aType, 
  TIdSSLIOHandlerSocketBase *aSSLHandler)
{
  if (aSSLHandler->ClassType() == __classid(TsgcIdSSLIOHandlerSocketSChannel))
  {
    SSL = dynamic_cast<TsgcIdSSLIOHandlerSocketSChannel*>(aSSLHandler);
  }
}
void OnConnectEvent(TsgcWSConnection *Connection)
{
  if (SSL != NULL)
  {
    TsgcSChannelConnectionInfo oInfo = SSL->GetInfo();
    if (oInfo->Protocol != tls1_2)
    {
      throw Exception("Client cannot connect using TLS 1.2");
    }
  }
}