SQL Server
SQL Server
Example: Crypt2.ClearEncryptCerts method
Demonstrates how to call the ClearEncryptCerts method.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @success int
SELECT @success = 0
DECLARE @crypt int
EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Tell the crypt object to use 3 certificates.
-- Do this by calling AddEncryptCert for each certificate.
DECLARE @cert1 int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert1 OUT
-- ...
-- Load the cert from a source such as a .pfx/.p12 file, smart card, USB token, Apple keychain, Windows certificate store, etc.
-- ...
EXEC sp_OAMethod @crypt, 'AddEncryptCert', NULL, @cert1
DECLARE @cert2 int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert2 OUT
-- ...
EXEC sp_OAMethod @crypt, 'AddEncryptCert', NULL, @cert2
DECLARE @cert3 int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert3 OUT
-- ...
EXEC sp_OAMethod @crypt, 'AddEncryptCert', NULL, @cert3
-- Params for public-key encryption to create PKCS7 enveloped-data
EXEC sp_OASetProperty @crypt, 'CryptAlgorithm', 'pki'
EXEC sp_OASetProperty @crypt, 'Pkcs7CryptAlg', 'aes'
EXEC sp_OASetProperty @crypt, 'KeyLength', 256
EXEC sp_OASetProperty @crypt, 'OaepHash', 'sha256'
EXEC sp_OASetProperty @crypt, 'OaepPadding', 1
DECLARE @bd int
EXEC @hr = sp_OACreate 'Chilkat.BinData', @bd OUT
-- ...
EXEC sp_OAMethod @crypt, 'EncryptBd', @success OUT, @bd
-- Let's say we now want to encrypt something else with different certs..
-- First clear the encryption certs.
EXEC sp_OAMethod @crypt, 'ClearEncryptCerts', NULL
DECLARE @cert4 int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert4 OUT
-- ...
EXEC sp_OAMethod @crypt, 'AddEncryptCert', NULL, @cert4
DECLARE @cert5 int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert5 OUT
-- ...
EXEC sp_OAMethod @crypt, 'AddEncryptCert', NULL, @cert5
-- ...
-- ...
-- Encrypt using cert4 and cert5.
EXEC sp_OAMethod @crypt, 'EncryptBd', @success OUT, @bd
EXEC @hr = sp_OADestroy @crypt
EXEC @hr = sp_OADestroy @cert1
EXEC @hr = sp_OADestroy @cert2
EXEC @hr = sp_OADestroy @cert3
EXEC @hr = sp_OADestroy @bd
EXEC @hr = sp_OADestroy @cert4
EXEC @hr = sp_OADestroy @cert5
END
GO