Sample code for 30+ languages & platforms
SQL Server

Load a PuTTY Public Key

See more SSH Key Examples

Demonstrates how to load a PuTTY public key.

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
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    --  Load a PuTTY public key.
    DECLARE @puttyKey int
    EXEC @hr = sp_OACreate 'Chilkat.SshKey', @puttyKey OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @pubKeyText nvarchar(4000)
    EXEC sp_OAMethod @puttyKey, 'LoadText', @pubKeyText OUT, 'qa_data/ppk/putty_public.pem'

    --  The pubKeyText contains this content:

    --  	---- BEGIN SSH2 PUBLIC KEY ----
    --  	Comment: "rsa-key-20170126"
    --  	AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW
    --  	6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8l
    --  	fa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4
    --  	zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8Vg
    --  	bNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hc
    --  	bOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==
    --  	---- END SSH2 PUBLIC KEY ----

    EXEC sp_OAMethod @puttyKey, 'FromRfc4716PublicKey', @success OUT, @pubKeyText
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @puttyKey, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @puttyKey
        RETURN
      END

    --  If desired, convert to other public key formats:
    DECLARE @openSshPubKeyStr nvarchar(4000)
    EXEC sp_OAMethod @puttyKey, 'ToOpenSshPublicKey', @openSshPubKeyStr OUT

    PRINT @openSshPubKeyStr

    --  openSshPubKeyStr contains:
    --  ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w== rsa-key-20170126

    --  Convert to an XML format:
    DECLARE @xmlPubKeyStr nvarchar(4000)
    EXEC sp_OAMethod @puttyKey, 'ToXml', @xmlPubKeyStr OUT

    PRINT @xmlPubKeyStr

    --  xmlPubKeyStr contains:
    --  <RSAPublicKey>
    --      <Modulus>x+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==</Modulus>
    --      <Exponent>JQ==</Exponent>
    --  </RSAPublicKey>
    --  
    --  

    EXEC @hr = sp_OADestroy @puttyKey


END
GO