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
Socket
Spider
String
Tar
Upload
XML
XMP
Zip

Byte Array
RSS
Atom
Self-Extractor

RSA Encrypt and Decrypt Strings

SQL Server sample code to RSA public-key encrypt and decrypt strings using public and private keys.

Download Chilkat RSA Public-Key Encryption ActiveX

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

    DECLARE @success int

    EXEC sp_OAMethod @rsa, 'UnlockComponent', @success OUT, 'Anything for 30-day trial'
    IF @success <> 1
      BEGIN
        PRINT 'RSA component unlock failed'
        RETURN
      END

    --  This example also generates the public and private
    --  keys to be used in the RSA encryption.
    --  Normally, you would generate a key pair once,
    --  and distribute the public key to your partner.
    --  Anything encrypted with the public key can be
    --  decrypted with the private key.  The reverse is
    --  also true: anything encrypted using the private
    --  key can be decrypted using the public key.

    --  Generate a 1024-bit key.  Chilkat RSA supports
    --  key sizes ranging from 512 bits to 16384 bits.
    EXEC sp_OAMethod @rsa, 'GenerateKey', @success OUT, 1024
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @rsa, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        RETURN
      END

    --  Keys are exported in XML format:
    DECLARE @publicKey nvarchar(4000)

    EXEC sp_OAMethod @rsa, 'ExportPublicKey', @publicKey OUT
    DECLARE @privateKey nvarchar(4000)

    EXEC sp_OAMethod @rsa, 'ExportPrivateKey', @privateKey OUT

    DECLARE @plainText nvarchar(4000)

    SELECT @plainText = 'Encrypting and decrypting should be easy!'

    --  Start with a new RSA object to demonstrate that all we
    --  need are the keys previously exported:
    DECLARE @rsaEncryptor int
    EXEC @hr = sp_OACreate 'Chilkat.Rsa', @rsaEncryptor OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Encrypted output is always binary.  In this case, we want
    --  to encode the encrypted bytes in a printable string.
    --  Our choices are "hex", "base64", "url", "quoted-printable".
    EXEC sp_OASetProperty @rsaEncryptor, 'EncodingMode', 'hex'

    --  We'll encrypt with the public key and decrypt with the private
    --  key.  It's also possible to do the reverse.
    EXEC sp_OAMethod @rsaEncryptor, 'ImportPublicKey', NULL, @publicKey

    DECLARE @usePrivateKey int

    SELECT @usePrivateKey = 0
    DECLARE @encryptedStr nvarchar(4000)

    EXEC sp_OAMethod @rsaEncryptor, 'EncryptStringENC', @encryptedStr OUT, @plainText, @usePrivateKey
    PRINT @encryptedStr

    --  Now decrypt:
    DECLARE @rsaDecryptor int
    EXEC @hr = sp_OACreate 'Chilkat.Rsa', @rsaDecryptor OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OASetProperty @rsaDecryptor, 'EncodingMode', 'hex'
    EXEC sp_OAMethod @rsaDecryptor, 'ImportPrivateKey', NULL, @privateKey

    SELECT @usePrivateKey = 1
    DECLARE @decryptedStr nvarchar(4000)

    EXEC sp_OAMethod @rsaDecryptor, 'DecryptStringENC', @decryptedStr OUT, @encryptedStr, @usePrivateKey

    PRINT @decryptedStr
END
GO

 

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

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