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.