SQL Server
SQL Server
DSA Get Key as XML
Gets the DSA key in XML format.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
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @dsa int
EXEC @hr = sp_OACreate 'Chilkat.Dsa', @dsa OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Generate a new 2048 bit DSA key.
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
-- Get the public key as XML
DECLARE @bPublicOnly int
SELECT @bPublicOnly = 1
DECLARE @xmlStr nvarchar(4000)
EXEC sp_OAMethod @dsa, 'ToXml', @xmlStr OUT, @bPublicOnly
PRINT @xmlStr
-- Sample output.
-- <DSAKeyValue>
-- <P>wBYOKu...2eoXw==</P>
-- <Q>1taJI7...kV2/9c=</Q>
-- <G>qjfbTi...eB1+g==</G>
-- <Y>t3tz...NqjsPEg==</Y>
-- </DSAKeyValue>
-- Get the private key as XML.
SELECT @bPublicOnly = 0
EXEC sp_OAMethod @dsa, 'ToXml', @xmlStr OUT, @bPublicOnly
PRINT @xmlStr
-- Sample output.
-- <DSAKeyValue>
-- <P>wBYOKu...2eoXw==</P>
-- <Q>1taJI7...kV2/9c=</Q>
-- <G>qjfbTi...eB1+g==</G>
-- <Y>t3tz...NqjsPEg==</Y>
-- <X>lm9F...XzuVO+qU=</X>
-- </DSAKeyValue>
EXEC @hr = sp_OADestroy @dsa
END
GO