Question:
Ftp2 client = new Ftp2(); client.Username = user; client.Password = pass; client.Hostname = server; client.Ssl = true; client.AuthTls = true; client.Port = 21; client.Passive = true; client.UnlockComponent("Start my 30-day Trial"); client.RequireSslCertVerify = true; client.SetSslCertRequirement("SubjectCN","XXXXXXXXXXXXXXXXXXXXX"); bool connected = client.Connect(); Console.WriteLine(client.LastErrorText); var cert = client.GetSslServerCert(); bool dirworked = client.ChangeRemoteDir(ftpDownloadDirectory); Console.WriteLine(client.LastErrorText); var dir = client.DirTreeXml(); Console.WriteLine(client.LastErrorText); Console.WriteLine(dir); bool worked = client.DownloadTree(localDirectory); Console.WriteLine(client.LastErrorText); ChilkatLog: Connect_Ftp2: DllDate: Mar 11 2016 ChilkatVersion: 9.5.0.56 UnlockPrefix: Start my 30-day Trial Username: SUS-HP-1423-HP:Bill.Nortman Architecture: Little Endian; 32-bit Language: .NET 4.5 VerboseLogging: 0 ProgressMonitoring: enabled: yes heartbeatMs: 0 sendBufferSize: 65536 --ProgressMonitoring AutoFix: Port is 21, thefore should not be implicit SSL/TLS. To prevent auto-fix, set the AutoFix property = False/0 ImplicitSsl: 0 AuthTls: 1 AuthSsl: 0 ftpConnect: Hostname: sftp.smartusys.net Port: 21 IdleTimeoutMs: 60000 socketOptions: SO_SNDBUF: 262144 SO_RCVBUF: 4194304 TCP_NODELAY: 1 SO_KEEPALIVE: 0 --socketOptions readCommandResponse: replyLineQP: 220 Microsoft FTP Service --readCommandResponse initialStatus: 220 initialResponse: 220 Microsoft FTP Service converting to secure connection... authTls: simpleCommand: sendCommand: sendingCommand: AUTH TLS --sendCommand readCommandResponse: replyLineQP: 234 AUTH command ok. Expecting TLS Negotiation. --readCommandResponse --simpleCommand clientHandshake: clientHandshake2: buildClientKeyExchange: buildClientKeyExchangeECDHE: Verified server key exchange. --buildClientKeyExchangeECDHE --buildClientKeyExchange --clientHandshake2 --clientHandshake simpleCommand: sendCommand: sendingCommand: PBSZ 0 --sendCommand readCommandResponse: replyLineQP: 200 PBSZ command successful. --readCommandResponse --simpleCommand simpleCommand: sendCommand: sendingCommand: PROT P --sendCommand readCommandResponse: replyLineQP: 200 PROT command successful. --readCommandResponse --simpleCommand --authTls successfully converted to secure connection... --ftpConnect Logging in... Login: sendCommand: sendingCommand: USER Central_Iron-PROD --sendCommand readCommandResponse: replyLineQP: 331 Password required --readCommandResponse sendCommand: sendingCommand: PASS * --sendCommand readCommandResponse: replyLineQP: 230 User logged in. --readCommandResponse FTP authentication successful. setTransferMode: simpleCommand: sendCommand: sendingCommand: TYPE I --sendCommand readCommandResponse: replyLineQP: 200 Type set to I. --readCommandResponse --simpleCommand --setTransferMode --Login Login successful. syst: simpleCommand: sendCommand: sendingCommand: SYST --sendCommand readCommandResponse: replyLineQP: 215 Windows_NT --readCommandResponse --simpleCommand --syst Syst: Windows_NT simpleCommand: sendCommand: sendingCommand: FEAT --sendCommand readCommandResponse: replyLineQP: 211-Extended features supported: replyLineQP: LANG EN* replyLineQP: UTF8 replyLineQP: AUTH TLS;TLS-C;SSL;TLS-P; replyLineQP: PBSZ replyLineQP: PROT C;P; replyLineQP: CCC replyLineQP: HOST replyLineQP: SIZE replyLineQP: MDTM replyLineQP: REST STREAM replyLineQP: 211 END --readCommandResponse --simpleCommand Sending OPTS UTF8 ON simpleCommand: sendCommand: sendingCommand: OPTS UTF8 ON --sendCommand readCommandResponse: replyLineQP: 200 OPTS UTF8 command successful - UTF8 encoding now ON. --readCommandResponse --simpleCommand Success. --Connect_Ftp2 --ChilkatLog ChilkatLog: ChangeRemoteDir: DllDate: Mar 11 2016 ChilkatVersion: 9.5.0.56 UnlockPrefix: Start my 30-day Trial Username: SUS-HP-1423-HP:Bill.Nortman Architecture: Little Endian; 32-bit Language: .NET 4.5 VerboseLogging: 0 dir: /susprod/billing/Central Iron_inputfiles changeRemoteDir: simplePathCommand: simpleCommand: lastWasIntermediate: readCommandResponse: replyLineQP: 550 The client and server cannot communicate, because they do not possess a= common algorithm. --readCommandResponse --lastWasIntermediate sendCommand: sendingCommand: CWD /susprod/billing/Central Iron_inputfiles --sendCommand readCommandResponse: replyLineQP: 250 CWD command successful. --readCommandResponse --simpleCommand --simplePathCommand --changeRemoteDir Success. --ChangeRemoteDir --ChilkatLog ChilkatLog: DirTreeXml: DllDate: Mar 11 2016 ChilkatVersion: 9.5.0.56 UnlockPrefix: Start my 30-day Trial Username: SUS-HP-1423-HP:Bill.Nortman Architecture: Little Endian; 32-bit Language: .NET 4.5 VerboseLogging: 0 ProgressMonitoring: enabled: yes heartbeatMs: 0 sendBufferSize: 65536 --ProgressMonitoring downloadDir: fetchDirListing: fetchDirListing2: convertDataConnToSsl: Failed to convert data connection to TLS --convertDataConnToSsl --fetchDirListing2 --fetchDirListing Failed to download directory listing --downloadDir --DirTreeXml --ChilkatLog ChilkatLog: Connect_Ftp2: DllDate: Mar 11 2016 ChilkatVersion: 9.5.0.56 UnlockPrefix: Start my 30-day Trial Username: SUS-HP-1423-HP:Bill.Nortman Architecture: Little Endian; 32-bit Language: .NET 4.5 VerboseLogging: 0 ProgressMonitoring: enabled: yes heartbeatMs: 0 sendBufferSize: 65536 --ProgressMonitoring AutoFix: Port is 21, thefore should not be implicit SSL/TLS. To prevent auto-fix, set the AutoFix property = False/0 ImplicitSsl: 0 AuthTls: 1 AuthSsl: 0 ftpConnect: Hostname: sftp.smartusys.net Port: 21 IdleTimeoutMs: 60000 socketOptions: SO_SNDBUF: 262144 SO_RCVBUF: 4194304 TCP_NODELAY: 1 SO_KEEPALIVE: 0 --socketOptions readCommandResponse: replyLineQP: 220 Microsoft FTP Service --readCommandResponse initialStatus: 220 initialResponse: 220 Microsoft FTP Service converting to secure connection... authTls: simpleCommand: sendCommand: sendingCommand: AUTH TLS --sendCommand readCommandResponse: replyLineQP: 234 AUTH command ok. Expecting TLS Negotiation. --readCommandResponse --simpleCommand clientHandshake: clientHandshake2: buildClientKeyExchange: buildClientKeyExchangeECDHE: Verified server key exchange. --buildClientKeyExchangeECDHE --buildClientKeyExchange --clientHandshake2 --clientHandshake simpleCommand: sendCommand: sendingCommand: PBSZ 0 --sendCommand readCommandResponse: replyLineQP: 200 PBSZ command successful. --readCommandResponse --simpleCommand simpleCommand: sendCommand: sendingCommand: PROT P --sendCommand readCommandResponse: replyLineQP: 200 PROT command successful. --readCommandResponse --simpleCommand --authTls successfully converted to secure connection... --ftpConnect Logging in... Login: sendCommand: sendingCommand: USER Central_Iron-PROD --sendCommand readCommandResponse: replyLineQP: 331 Password required --readCommandResponse sendCommand: sendingCommand: PASS * --sendCommand readCommandResponse: replyLineQP: 230 User logged in. --readCommandResponse FTP authentication successful. setTransferMode: simpleCommand: sendCommand: sendingCommand: TYPE I --sendCommand readCommandResponse: replyLineQP: 200 Type set to I. --readCommandResponse --simpleCommand --setTransferMode --Login Login successful. syst: simpleCommand: sendCommand: sendingCommand: SYST --sendCommand readCommandResponse: replyLineQP: 215 Windows_NT --readCommandResponse --simpleCommand --syst Syst: Windows_NT simpleCommand: sendCommand: sendingCommand: FEAT --sendCommand readCommandResponse: replyLineQP: 211-Extended features supported: replyLineQP: LANG EN* replyLineQP: UTF8 replyLineQP: AUTH TLS;TLS-C;SSL;TLS-P; replyLineQP: PBSZ replyLineQP: PROT C;P; replyLineQP: CCC replyLineQP: HOST replyLineQP: SIZE replyLineQP: MDTM replyLineQP: REST STREAM replyLineQP: 211 END --readCommandResponse --simpleCommand Sending OPTS UTF8 ON simpleCommand: sendCommand: sendingCommand: OPTS UTF8 ON --sendCommand readCommandResponse: replyLineQP: 200 OPTS UTF8 command successful - UTF8 encoding now ON. --readCommandResponse --simpleCommand Success. --Connect_Ftp2 --ChilkatLog ChilkatLog: ChangeRemoteDir: DllDate: Mar 11 2016 ChilkatVersion: 9.5.0.56 UnlockPrefix: Start my 30-day Trial Username: SUS-HP-1423-HP:Bill.Nortman Architecture: Little Endian; 32-bit Language: .NET 4.5 VerboseLogging: 0 dir: /susprod/billing/Central Iron_inputfiles changeRemoteDir: simplePathCommand: simpleCommand: lastWasIntermediate: readCommandResponse: replyLineQP: 550 The client and server cannot communicate, because they do not possess a= common algorithm. --readCommandResponse --lastWasIntermediate sendCommand: sendingCommand: CWD /susprod/billing/Central Iron_inputfiles --sendCommand readCommandResponse: replyLineQP: 250 CWD command successful. --readCommandResponse --simpleCommand --simplePathCommand --changeRemoteDir Success. --ChangeRemoteDir --ChilkatLog ChilkatLog: DirTreeXml: DllDate: Mar 11 2016 ChilkatVersion: 9.5.0.56 UnlockPrefix: Start my 30-day Trial Username: SUS-HP-1423-HP:Bill.Nortman Architecture: Little Endian; 32-bit Language: .NET 4.5 VerboseLogging: 0 ProgressMonitoring: enabled: yes heartbeatMs: 0 sendBufferSize: 65536 --ProgressMonitoring downloadDir: fetchDirListing: fetchDirListing2: convertDataConnToSsl: Failed to convert data connection to TLS --convertDataConnToSsl --fetchDirListing2 --fetchDirListing Failed to download directory listing --downloadDir --DirTreeXml --ChilkatLog
Google the error message "550 The client and server cannot communicate, because they do not possess a common algorithm."
This is what I found at http://stackoverflow.com/questions/26742054/the-client-and-server-cannot-communicate-because-they-do-not-possess-a-common-a
This was resolved. It turns out our IT Staff was correct. Both TLS 1.1 and TLS 1.2 were installed on the server. However, the issue was that our sites are running as ASP.NET 4.0 and you have to have ASP.NET 4.5 to run TLS 1.1 or TLS 1.2. So, to resolve the issue, our IT Staff had to reenable TLS 1.0 to allow a connection with PayTrace.
So in short, the error message, "the client and server cannot communicate, because they do not possess a common algorithm", was caused because there was no SSL Protocol available on the server to communicate with PayTrace's servers.
Chilkat supports TLS 1.0, 1.1, and 1.2. The server is the side that actually chooses the TLS protocol version. Chilkat will work with whatever the server decides. This seems to be a problem that requires a fix on the server-side.