Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
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 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCERTIFICATELib_TLB, CHILKATSOCKETLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var socket: TChilkatSocket; success: Integer; certStore: CHILKATCERTIFICATELib_TLB.IChilkatCertStore; cert: CHILKATSOCKETLib_TLB.IChilkatCert; ssl: Integer; maxWaitMillisec: Integer; sslServerHost: String; sslServerPort: Integer; receivedMsg: String; begin socket := TChilkatSocket.Create(Self); success := socket.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage('Failed to unlock component'); Exit; end; // 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 := CoChilkatCertStore.Create(); // 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 ShowMessage(certStore.LastErrorText); Exit; end; cert := certStore.FindCertBySubjectCN('Chilkat Software, Inc.') As CHILKATSOCKETLib_TLB.IChilkatCert; if (cert = nil ) then begin ShowMessage(certStore.LastErrorText); Exit; end; socket.SetSslClientCert(cert As CHILKATSOCKETLib_TLB.IChilkatCert); 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 ShowMessage(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 ShowMessage(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 (Length(receivedMsg) = 0 ) then begin ShowMessage(socket.LastErrorText); Exit; end; // Close the connection with the server // Wait a max of 20 seconds (20000 millsec) socket.Close(20000); ShowMessage(receivedMsg); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.