Sample code for 30+ languages & platforms
SQL Server

Convert DSA PEM Private Key to DER

See more DSA Examples

Converts a DSA private key from PEM format to DER. The first part of the example will convert an unencrypted PEM to DER, then 2nd part will convert an encrypted PEM to unencrypted DER.

Chilkat SQL Server Downloads

SQL Server
-- 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

    -- Load a PEM private key.
    DECLARE @pemPrivateKey nvarchar(4000)

    EXEC sp_OAMethod @dsa, 'LoadText', @pemPrivateKey OUT, 'dsa_priv.pem'
    -- Import the unencrypted PEM into the DSA object.
    EXEC sp_OAMethod @dsa, 'FromPem', @success OUT, @pemPrivateKey
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @dsa, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @dsa
        RETURN
      END

    -- Write it out as a DER file:
    EXEC sp_OAMethod @dsa, 'ToDerFile', @success OUT, 'dsa_priv.der'
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @dsa, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @dsa
        RETURN
      END

    -- Load an encrypted PEM private key.
    EXEC sp_OAMethod @dsa, 'LoadText', @pemPrivateKey OUT, 'dsa_privEncrypted.pem'
    -- Import the encrypted PEM into the DSA object.
    EXEC sp_OAMethod @dsa, 'FromEncryptedPem', @success OUT, 'myPassword', @pemPrivateKey
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @dsa, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @dsa
        RETURN
      END

    -- Write it out as an unencrypted DER file:
    EXEC sp_OAMethod @dsa, 'ToDerFile', @success OUT, 'dsa_priv2.der'
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @dsa, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @dsa
        RETURN
      END


    PRINT 'Finished!'

    EXEC @hr = sp_OADestroy @dsa


END
GO