PureBasic
PureBasic
FTP Connect, Examine Server Certificate, and then Authenticate
See more FTP Examples
Demonstrates how to connect to an FTP server, examine the server's SSL/TLS certificate, and then, if it meets the application's security requirements, proceed to authenticate.Chilkat PureBasic Downloads
IncludeFile "CkFtp2.pb"
IncludeFile "CkCert.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes Chilkat Ftp2 to have been previously unlocked.
; See Unlock Ftp2 for sample code.
ftp.i = CkFtp2::ckCreate()
If ftp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkFtp2::setCkHostname(ftp, "www.authtls-ftps-server.com")
CkFtp2::setCkUsername(ftp, "FTP_LOGIN")
CkFtp2::setCkPassword(ftp, "FTP_PASSWORD")
CkFtp2::setCkAuthTls(ftp, 1)
CkFtp2::setCkPort(ftp, 21)
; Connect to the FTP server using explicit TLS (AUTH TLS).
success = CkFtp2::ckConnectOnly(ftp)
If success = 0
Debug CkFtp2::ckLastErrorText(ftp)
CkFtp2::ckDispose(ftp)
ProcedureReturn
EndIf
; Get the FTP server's certificate.
serverCert.i = CkCert::ckCreate()
If serverCert.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkFtp2::ckGetServerCert(ftp,serverCert)
If success = 0
Debug CkFtp2::ckLastErrorText(ftp)
CkFtp2::ckDispose(ftp)
CkCert::ckDispose(serverCert)
ProcedureReturn
EndIf
; Now that we have the certificate, we can check it in any way we desire.
; (See the online reference documentation for the certificate object's methods
; and properties)...
; Assuming the certificate is OK, proceed to authenticate with the FTP server.
success = CkFtp2::ckLoginAfterConnectOnly(ftp)
If success = 0
Debug CkFtp2::ckLastErrorText(ftp)
CkFtp2::ckDispose(ftp)
CkCert::ckDispose(serverCert)
ProcedureReturn
EndIf
;
; Proceed with uploading/download files, etc...
;
CkFtp2::ckDisconnect(ftp)
Debug "Success."
CkFtp2::ckDispose(ftp)
CkCert::ckDispose(serverCert)
ProcedureReturn
EndProcedure