0

It wants to connect to a non-standard device over TCP SSL.

private void Connect ()
 {
  tcp = new TcpClient();
  tcp.Connect("192.168.1.241", 9771); 
  stream = tcp.GetStream();
  SslStream sslStream = new SslStream(stream, false, new RemoteCertificateValidationCallback(ValidateCert), null, EncryptionPolicy.AllowNoEncryption);

until then, it is ok, but another line is constantly throwing the same error: SSPI call failed. See internal exception. Internal exception: At least one parameter passed to the function was invalid.

sslStream.AuthenticateAsClient("192.168.1.241:9771", new X509CertificateCollection(), SslProtocols.Ssl3, false);
}

or

sslStream.AuthenticateAsClient("192.168.1.241:9771");
}

rest of code:

 public static bool ValidateCert(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
           return true; 
    }

Code in Delphi and INDY 10 work ok.

Code delphi:

procedure TForm1.Connect;
begin
 IdTCPClient1.Host := '192.168.1.241';
  IdTCPClient1.Port := 9771;
  IdTCPClient1.Connect;
end;

function TForm1.IdSSLIOHandlerSocketOpenSSL1VerifyPeer(Certificate: TIdX509;  AOk: Boolean; ADepth, AError: Integer): Boolean;
begin
  Result:=true;
end;

Indy configuration:

object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
    OnStatus = IdSSLIOHandlerSocketOpenSSL1Status
    Destination = '192.168.1.241:9771'
    Host = '192.168.1.241'
    MaxLineAction = maException
    Port = 9771
    DefaultPort = 0
    UseNagle = False
    ReadTimeout = 60000
    SSLOptions.Method = sslvSSLv3
    SSLOptions.SSLVersions = [sslvSSLv3]
    SSLOptions.Mode = sslmClient
    SSLOptions.VerifyMode = []
    SSLOptions.VerifyDepth = 0
    OnVerifyPeer = IdSSLIOHandlerSocketOpenSSL1VerifyPeer
    Left = 104
    Top = 32
  end
  object IdTCPClient1: TIdTCPClient
    OnStatus = IdTCPClient1Status
    IOHandler = IdSSLIOHandlerSocketOpenSSL1
    ConnectTimeout = 5000
    Host = '192.168.1.241'
    IPVersion = Id_IPv4
    Port = 9771
    ReadTimeout = 60000
    UseNagle = False
    Left = 72
    Top = 32
  end

What am I doing wrong ? Please HELP !!! Rafal.

RTS
  • 71
  • 1
  • 2
  • Have you seen this: https://stackoverflow.com/questions/12653911/how-to-use-certificate-callback-in-sslstream-authenticateasclient-method – Kaushal Kumar Panday Jul 27 '17 at 17:29
  • I do not have any certificate for this connection. I think this is a connection similar to joining a web page via SSL in this case also knowingly I do not send any certificate just accept. This SSPI error is significant. – RTS Jul 28 '17 at 06:46

0 Answers0