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
(Delphi ActiveX) 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.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var socket: TChilkatSocket; certStore: TChilkatCertStore; success: Integer; cert: IChilkatCert; ssl: Integer; maxWaitMillisec: Integer; sslServerHost: WideString; sslServerPort: Integer; receivedMsg: WideString; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. socket := TChilkatSocket.Create(Self); // 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 := TChilkatCertStore.Create(Self); // The 1st argument is the filename, the 2nd arg is the // PFX file's password: success := certStore.LoadPfxFile('chilkat_secret.pfx','secret'); if (success <> 1) then begin Memo1.Lines.Add(certStore.LastErrorText); Exit; end; cert := certStore.FindCertBySubjectCN('Chilkat Software, Inc.'); if (certStore.LastMethodSuccess = 0) then begin Memo1.Lines.Add(certStore.LastErrorText); Exit; end; success := socket.SetSslClientCert(cert); ssl := 1; maxWaitMillisec := 20000; // The SSL server hostname may be an IP address, a domain name, // or "localhost". You'll need to change this: sslServerHost := '123.123.88.88'; sslServerPort := 8123; // Connect to the SSL server: success := socket.Connect(sslServerHost,sslServerPort,ssl,maxWaitMillisec); if (success <> 1) then begin Memo1.Lines.Add(socket.LastErrorText); Exit; end; // Set maximum timeouts for reading an writing (in millisec) socket.MaxReadIdleMs := 20000; socket.MaxSendIdleMs := 20000; // Send a "Hello Server! -EOM-" message: success := socket.SendString('Hello Server! -EOM-'); if (success <> 1) then begin Memo1.Lines.Add(socket.LastErrorText); Exit; end; // The server (in this example) is going to send a "Hello Client! -EOM-" // message. Read it: receivedMsg := socket.ReceiveUntilMatch('-EOM-'); if (socket.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(socket.LastErrorText); Exit; end; // Close the connection with the server // Wait a max of 20 seconds (20000 millsec) success := socket.Close(20000); Memo1.Lines.Add(receivedMsg); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.