SQL Server Stored Procedure Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

SQL Server
Stored Procedure Examples

Quick Start
Encryption
File Access
IMAP
POP3
SMTP
Email Object
FTP
HTML-to-XML
HTTP
MHT
MIME
RSA Encryption
Diffie-Hellman
DSA
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
String
Tar
Upload
XML
XMP
Zip

Byte Array
RSS
Atom
Self-Extractor

Secure FTP with Client Certificate

Chilkat FTP2 provides the ability to use a client certificate with secure FTP (implicit or explicit SSL/TLS). This example demonstrates how to load a certificate from a .pfx and use it as the client-side SSL cert. Note: Client-side certificates are only needed in situations where the server demands one.

Download Chilkat FTP2 ActiveX

CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @ftp int
    EXEC @hr = sp_OACreate 'Chilkat.Ftp2', @ftp OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @success int

    --  Any string unlocks the component for the 1st 30-days.
    EXEC sp_OAMethod @ftp, 'UnlockComponent', @success OUT, 'Anything for 30-day trial'
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @ftp, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        RETURN
      END

    --  You may use this account for testing.
    --  This account allows for directory listings and files
    --  to be downloaded.  However, file uploads are not allowed.
    EXEC sp_OASetProperty @ftp, 'Hostname', 'ftp.secureftp-test.com'
    EXEC sp_OASetProperty @ftp, 'Username', 'test'
    EXEC sp_OASetProperty @ftp, 'Password', 'test'

    --  Establish an explicit secure channel after connection
    --  on the standard FTP port 21.
    EXEC sp_OASetProperty @ftp, 'AuthTls', 1

    --  The Ssl property is for establishing an implicit SSL connection
    --  on port 990.  Do not set it.
    EXEC sp_OASetProperty @ftp, 'Ssl', 0

    --  Load a certificate from a .pfx
    --  A PFX may contain several certs, including the certificates
    --  in a chain of authority.
    DECLARE @certStore int
    EXEC @hr = sp_OACreate 'Chilkat.CertStore', @certStore OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @password nvarchar(4000)

    SELECT @password = '***'
    --  Load the certs from a PFX into an in-memory certificate store:
    EXEC sp_OAMethod @certStore, 'LoadPfxFile', @success OUT, 'chilkat.pfx', @password
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @certStore, 'LastErrorText', @sTmp0 OUT

        PRINT @sTmp0
        RETURN
      END

    --  Find the exact cert we'll use:
    DECLARE @cert int

    EXEC sp_OAMethod @certStore, 'FindCertBySubject', @cert OUT, 'Chilkat Software, Inc.'
    IF @cert Is NULL 
      BEGIN

        PRINT 'Certificate not found!'
        RETURN
      END

    --  Use this certificate for our secure (SSL/TLS) connection:
    EXEC sp_OAMethod @ftp, 'SetSslClientCert', NULL, @cert

    --  Connect and login to the FTP server.  The connection is
    --  made secure because of the AuthTls setting.
    EXEC sp_OAMethod @ftp, 'Connect', @success OUT
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @ftp, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        RETURN
      END
    ELSE
      BEGIN
        --  LastErrorText contains information even when
        --  successful. This allows you to visually verify
        --  that the secure connection actually occurred.
        EXEC sp_OAGetProperty @ftp, 'LastErrorText', @sTmp0 OUT

        PRINT @sTmp0
      END

    PRINT 'Secure FTP Channel Established!'

    --  Do whatever you're doing to do ...
    --  upload files, download files, etc...

    EXEC sp_OAMethod @ftp, 'Disconnect', NULL

    --  The LastErrorText provides a detailed log of the
    --  SSL connection for both success and failed connections.
    --  Here is an example of a successful connection.
    --  The client certificate is logged as "ClientCertDN":

    --  ChilkatLog:
    --    Connect:
    --      DllDate: Aug 15 2007
    --      Hostname: ftp.secureftp-test.com
    --      Port: 21
    --      IdleTimeoutMs: 60000
    --      ConnectTimeout: 60
    --      HeartbeatMs: 0
    --      initialStatus: 220
    --      initialResponse: 220 FileZilla Server version 0.9.23 beta
    --      converting to secure connection...
    --      ClientCertDN: C=US, S=Illinois, L=Wheaton, O="Chilkat Software, Inc.", OU=Secure Application Development, CN="Chilkat Software, Inc."
    --      SSL Server Certificate not verified.
    --      ConnectionInfo:
    --        protocol: TLS1
    --        cipher: RC4
    --        cipherStrength: 128
    --        hash: MD5
    --        hashStrength: 128
    --        keyExchange: RSA
    --        keyExchangeStrength: 1024
    --      Secure Channel Established.
    --      successfully converted to secure connection...
    --      Features: 211-Features:
    --   MDTM
    --   REST STREAM
    --   SIZE
    --   MLST type*;size*;modify*;
    --   MLSD
    --   AUTH SSL
    --   AUTH TLS
    --   UTF8
    --   CLNT
    --   MFMT
    --  211 End
    --      Directory listings are utf-8
    --      Logging in...
    --      Username: test
    --      Login successful.
    --      Connect successful

END
GO

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.