Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) RSA Sign Using Private Key from .pfx/.p12 to Base64 SignatureSee more RSA ExamplesDemonstrates how to RSA sign something using a private key loaded from a .pfx/.p12. The RSA signature is returned in Base64 encoded format.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @rsa int -- Use "Chilkat_9_5_0.Rsa" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Rsa', @rsa OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- Load the .pfx/.p12 DECLARE @pfx int -- Use "Chilkat_9_5_0.Pfx" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Pfx', @pfx OUT DECLARE @success int EXEC sp_OAMethod @pfx, 'LoadPfxFile', @success OUT, 'qa_data/pfx/myKey.p12', 'myPassword' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @pfx, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @rsa EXEC @hr = sp_OADestroy @pfx RETURN END -- Get the default private key. DECLARE @privKey int EXEC sp_OAMethod @pfx, 'GetPrivateKey', @privKey OUT, 0 EXEC sp_OAGetProperty @pfx, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @pfx, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @rsa EXEC @hr = sp_OADestroy @pfx RETURN END -- Import the private key into the RSA component: EXEC sp_OAMethod @rsa, 'ImportPrivateKeyObj', @success OUT, @privKey IF @success <> 1 BEGIN EXEC sp_OAGetProperty @rsa, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @privKey EXEC @hr = sp_OADestroy @rsa EXEC @hr = sp_OADestroy @pfx RETURN END EXEC @hr = sp_OADestroy @privKey -- Get the signature in base64 EXEC sp_OASetProperty @rsa, 'EncodingMode', 'base64' DECLARE @strData nvarchar(4000) SELECT @strData = 'This is the string to be signed.' -- Sign the string using the sha256 hash algorithm. -- Other valid choices are "sha384", "sha512", "sha-1", "md2" and "md5". DECLARE @base64Sig nvarchar(4000) EXEC sp_OAMethod @rsa, 'SignStringENC', @base64Sig OUT, @strData, 'sha256' PRINT @base64Sig PRINT 'Success!' EXEC @hr = sp_OADestroy @rsa EXEC @hr = sp_OADestroy @pfx END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.