SQL Server
SQL Server
Load Certificate (.cer) and Private Key (.pvk) generated from makecert
See more Certificates Examples
Demonstrates how to load a certificate (.cer) and private key (.pvk) from the files produced by makecert, such as in the following command:makecert -sv mycertificate.pvk -n "CN=My Simple Certificate" mycertificate.cer -sky Exchange
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
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- First load the .cer file.
-- The certificate file (.cer) contains only the certificate (does not include the private key)
DECLARE @cert int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @cert, 'LoadFromFile', @success OUT, 'qa_data/certs_and_keys/makecert/mycertificate.cer'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @cert, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @cert
RETURN
END
-- Next, load the .pvk file.
-- Note: The password "secret" is what you entered when makecert displayed the dialog asking for a password..
DECLARE @privKey int
EXEC @hr = sp_OACreate 'Chilkat.PrivateKey', @privKey OUT
EXEC sp_OAMethod @privKey, 'LoadPvkFile', @success OUT, 'qa_data/certs_and_keys/makecert/mycertificate.pvk', 'secret'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @privKey, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @cert
EXEC @hr = sp_OADestroy @privKey
RETURN
END
-- Finally, associate the private key with the certificate.
EXEC sp_OAMethod @cert, 'SetPrivateKey', @success OUT, @privKey
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @cert, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @cert
EXEC @hr = sp_OADestroy @privKey
RETURN
END
-- At this point, the certificate can be used for signing. For example..
DECLARE @pdf int
EXEC @hr = sp_OACreate 'Chilkat.Pdf', @pdf OUT
-- ....
-- ....
EXEC sp_OAMethod @pdf, 'SetSigningCert', @success OUT, @cert
-- ...
-- ....
-- Some Chilkat classes also provide a method where the cert and private key can be passed separately.
-- For example, if SetSigningCert2 is called, then we don't need to explicitly associate the private key with the cert.
EXEC sp_OAMethod @pdf, 'SetSigningCert2', @success OUT, @cert, @privKey
-- ...
-- ....
EXEC @hr = sp_OADestroy @cert
EXEC @hr = sp_OADestroy @privKey
EXEC @hr = sp_OADestroy @pdf
END
GO