Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) SSL Client CertificateDemonstrates how to connect to an SSL server using a client-side certificate, send a simple message, receive a simple response, and disconnect.
IncludeFile "CkCertStore.pb" IncludeFile "CkCert.pb" IncludeFile "CkSocket.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. socket.i = CkSocket::ckCreate() If socket.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Create an instance of a certificate store object, load a PFX file, ; locate the certificate we need, and use it for signing. ; (a PFX file may contain more than one certificate.) certStore.i = CkCertStore::ckCreate() If certStore.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The 1st argument is the filename, the 2nd arg is the ; PFX file's password: success.i = CkCertStore::ckLoadPfxFile(certStore,"chilkat_secret.pfx","secret") If success <> 1 Debug CkCertStore::ckLastErrorText(certStore) CkSocket::ckDispose(socket) CkCertStore::ckDispose(certStore) ProcedureReturn EndIf cert.i cert = CkCertStore::ckFindCertBySubjectCN(certStore,"Chilkat Software, Inc.") If CkCertStore::ckLastMethodSuccess(certStore) = 0 Debug CkCertStore::ckLastErrorText(certStore) CkSocket::ckDispose(socket) CkCertStore::ckDispose(certStore) ProcedureReturn EndIf success = CkSocket::ckSetSslClientCert(socket,cert) ssl.i = 1 maxWaitMillisec.i = 20000 ; The SSL server hostname may be an IP address, a domain name, ; or "localhost". You'll need to change this: sslServerHost.s sslServerHost = "123.123.88.88" sslServerPort.i = 8123 ; Connect to the SSL server: success = CkSocket::ckConnect(socket,sslServerHost,sslServerPort,ssl,maxWaitMillisec) If success <> 1 Debug CkSocket::ckLastErrorText(socket) CkSocket::ckDispose(socket) CkCertStore::ckDispose(certStore) ProcedureReturn EndIf ; Set maximum timeouts for reading an writing (in millisec) CkSocket::setCkMaxReadIdleMs(socket, 20000) CkSocket::setCkMaxSendIdleMs(socket, 20000) ; Send a "Hello Server! -EOM-" message: success = CkSocket::ckSendString(socket,"Hello Server! -EOM-") If success <> 1 Debug CkSocket::ckLastErrorText(socket) CkSocket::ckDispose(socket) CkCertStore::ckDispose(certStore) ProcedureReturn EndIf ; The server (in this example) is going to send a "Hello Client! -EOM-" ; message. Read it: receivedMsg.s = CkSocket::ckReceiveUntilMatch(socket,"-EOM-") If CkSocket::ckLastMethodSuccess(socket) <> 1 Debug CkSocket::ckLastErrorText(socket) CkSocket::ckDispose(socket) CkCertStore::ckDispose(certStore) ProcedureReturn EndIf ; Close the connection with the server ; Wait a max of 20 seconds (20000 millsec) success = CkSocket::ckClose(socket,20000) Debug receivedMsg CkSocket::ckDispose(socket) CkCertStore::ckDispose(certStore) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.