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) DSA Generate KeyGenerates a DSA public/private key pair and saves to PEM and DER file formats (both encrypted and non-encrypted). An encrypted DSA PEM looks like this: -----BEGIN DSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,9DAFD5C4CD62A5D0 QwDdp66sB0qKXQli7FbVcKL/eo3wu7kGRlV2sI8XbkNa1RTLiwnwTWDB0dqyWRQ8 ... Bx0HVfxKiNgCbL6BQEnYD+GOmMcckuj9Uhgloe/YuXCIDJBGhjUt/li3hvR/PXeC V2xxNl1XKBE88njqi+UXt4vjGVNLpvXM -----END DSA PRIVATE KEY-----
-- 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) -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @dsa int -- Use "Chilkat_9_5_0.Dsa" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Dsa', @dsa OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- Call GenKey to generate a new DSA key. -- The number of bits should be at least 1024 and a multiple -- of 64. Typical values are either 1024 or 2048. -- DSA key generation is compute intensive and may take -- a short while to complete. DECLARE @success int EXEC sp_OAMethod @dsa, 'GenKey', @success OUT, 2048 IF @success <> 1 BEGIN EXEC sp_OAGetProperty @dsa, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @dsa RETURN END -- Extract the private and public parts to PEM or DER format -- and save to files... DECLARE @pemStr nvarchar(4000) DECLARE @xmlStr nvarchar(4000) -- First for the public key... -- The public key never needs to be encrypted. -- Save the public key in PEM format: EXEC sp_OAMethod @dsa, 'ToPublicPem', @pemStr OUT -- This example will not check the return value of SaveText... EXEC sp_OAMethod @dsa, 'SaveText', @success OUT, @pemStr, 'dsa_pub.pem' -- Save the public key in DER format: EXEC sp_OAMethod @dsa, 'ToPublicDerFile', @success OUT, 'dsa_pub.der' DECLARE @bPublicOnly int SELECT @bPublicOnly = 1 -- Save to XML EXEC sp_OAMethod @dsa, 'ToXml', @xmlStr OUT, @bPublicOnly EXEC sp_OAMethod @dsa, 'SaveText', @success OUT, @xmlStr, 'dsa_pub.xml' -- ------------------------------------ -- Now for the private key.... -- ------------------------------------ -- Unencrypted PEM: EXEC sp_OAMethod @dsa, 'ToPem', @pemStr OUT EXEC sp_OAMethod @dsa, 'SaveText', @success OUT, @pemStr, 'dsa_priv.pem' -- Encrypted PEM: EXEC sp_OAMethod @dsa, 'ToEncryptedPem', @pemStr OUT, 'myPassword' EXEC sp_OAMethod @dsa, 'SaveText', @success OUT, @pemStr, 'dsa_privEncrypted.pem' -- DER: EXEC sp_OAMethod @dsa, 'ToDerFile', @success OUT, 'dsa_priv.der' -- XML: SELECT @bPublicOnly = 0 EXEC sp_OAMethod @dsa, 'ToXml', @xmlStr OUT, @bPublicOnly EXEC sp_OAMethod @dsa, 'SaveText', @success OUT, @xmlStr, 'dsa_priv.xml' PRINT 'Finished!' EXEC @hr = sp_OADestroy @dsa END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.