Sample code for 30+ languages & platforms
SQL Server Requires Chilkat v11.0.0+

Generate RSA Public/Private Key

See more RSA Examples

_LANGUAGE_ example code showing how to generate an RSA public/private key.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    --  This example assumes the Chilkat API to have been previously unlocked.
    --  See Global Unlock Sample for sample code.

    DECLARE @rsa int
    EXEC @hr = sp_OACreate 'Chilkat.Rsa', @rsa OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Generate a 2048-bit key.  Chilkat RSA supports
    --  key sizes ranging from 512 bits to 8192 bits.
    DECLARE @privKey int
    EXEC @hr = sp_OACreate 'Chilkat.PrivateKey', @privKey OUT

    EXEC sp_OAMethod @rsa, 'GenKey', @success OUT, 2048, @privKey
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @rsa, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @rsa
        EXEC @hr = sp_OADestroy @privKey
        RETURN
      END

    DECLARE @pubKey int
    EXEC @hr = sp_OACreate 'Chilkat.PublicKey', @pubKey OUT

    EXEC sp_OAMethod @privKey, 'ToPublicKey', @success OUT, @pubKey

    EXEC sp_OAMethod @privKey, 'GetPkcs8Pem', @sTmp0 OUT
    PRINT @sTmp0

    EXEC sp_OAMethod @pubKey, 'GetPem', @sTmp0 OUT, 0
    PRINT @sTmp0

    --  Sample output:

    --  -----BEGIN PRIVATE KEY-----
    --  MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD0SwWmX222gCpW
    --  ue75Q3VicOSXlTW0YNVksW8oGLS8x/SI5ZUqVMLIl2gsF1drEg2b+lvfeB7l2hwo
    --  UUCK0x2L2qv8hs4zrHmrrCi5xHHG7kpQAoi2PTodWvKvr9m7+n+nFcwOMrY0+qZM
    --  oYUg85yde3tWek5ouj4v1ZC9lbsozTrl2aIm/nD+o1PXg/V7CL2owbS+UG0iRz0C
    --  IYwn8hNEEe3/Uzw2oq7Gt37jOTYB21jX9RSgt0v90ifaQeXR6uiuuaJLRVunJXrd
    --  lJ9QvJh8xYuyEhJO5cChtn2AcSSxm417O4vJzBSHKKAn+EA/YIs74UsYTZojG5x/
    --  ptA3GDzhAgMBAAECggEBAIC4Vw3HEqQq/CQebJDivqNUIN7OPDIDI+2eoJdcDT+7
    --  jFnlvqdDai8PuFAjLGi6ZnldfbNOM9mhB10nEv8TJmpemmjBDz2jD6kpWXwoylqr
    --  jHSEIU0FDe4R0fZIjk3CPCjqD08b4W4g9CdEpEUsl8VTHzX90/rSx5mkylNa5fck
    --  xOf7V4W3L0OC+J0zKFiAQtI1abf+7x5rsnoi8sJ90v4wWWaXtMxHAZRLZxY2FtV3
    --  BbydbTqU+UC8T2+4ga+J549k9QomZ8zUhxe22jTBcKcIE+cGK5CLN8fJJ1GZWiB9
    --  JYOmeTat7N6SrpqdTsjqF2+Y6s5lt+B1yI6Fg2069MECgYEA/VYd3xZgqEjM1095
    --  zEce1eNujk+QGRfQv/9ToF8/jdJAvJQStagupIAHH0+iLnQGIZKLS0AxTJqlz0be
    --  r+0+8bs2whiuCvNF6U/pfslMUdlkOlY38lhdL3IqVOcf4douGEPI1BJlJraJFxea
    --  49SeWJLY23Yb1j3yvCWTmBP6q8UCgYEA9tyQcRCRDis4V7NGwvWi8v3BBHf/lgo0
    --  ac+676DWqHco4cbu1ZVkyM5Y3rgsgX5APeqPhaXlivvv8LLhUSydUoquhdHlBeRi
    --  XxTBj4aNNRwBfC9x9keOaBBBhughwgrDcEnGL6/B/6mpXydY0El7DmGf1G5x46NY
    --  jUoqVa54Um0CgYAI8eN4HwgmqPtiltHMHq6+Cpu6tqB14ltijBdd0D8kOMpEXk4S
    --  z+9lq4eU2XD2hu44fT4h2BBljghQu0XdnFjenCegztJGXLSZOlMaQO1K7owVaznq
    --  eqg/pp5MBSUhCl0aSjprEoMzzLomcJTtenJk2jqB9TeiZumNLx54/iuZqQKBgDjp
    --  bq9yV07B7hJh9W1a/f8xOz+Rfq4TmjPOvVUjanmaRyWOHF/HOl4FHH30TeZoudzM
    --  Z9wy+/GH1bBTPRjexUJTUJrvYfJyza8H9Pvm1EUrOLhto8NYid856DF28Nlwa9BG
    --  Ydd6mKodbjvOsW4LksAlB5kNAVquvOqN76ajO4AdAoGBAMXWdg9VFObBklLTRs81
    --  LgtLd9brWpRUHYkH8Ctw2bgyHuel26HVghWWy7JxU308uWL6ZrSXv7Qlsw7iYYwP
    --  m8BwjxUTfwTpqHfIi5sjeL6IeNiUPesqyT4B7J7ssmzYf8bedwN7TsrrY+169Ud3
    --  tC1UNW1BQbHh4RnyusT93Z71
    --  -----END PRIVATE KEY-----
    --  
    --  -----BEGIN PUBLIC KEY-----
    --  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9EsFpl9ttoAqVrnu+UN1
    --  YnDkl5U1tGDVZLFvKBi0vMf0iOWVKlTCyJdoLBdXaxINm/pb33ge5docKFFAitMd
    --  i9qr/IbOM6x5q6woucRxxu5KUAKItj06HVryr6/Zu/p/pxXMDjK2NPqmTKGFIPOc
    --  nXt7VnpOaLo+L9WQvZW7KM065dmiJv5w/qNT14P1ewi9qMG0vlBtIkc9AiGMJ/IT
    --  RBHt/1M8NqKuxrd+4zk2AdtY1/UUoLdL/dIn2kHl0erorrmiS0VbpyV63ZSfULyY
    --  fMWLshISTuXAobZ9gHEksZuNezuLycwUhyigJ/hAP2CLO+FLGE2aIxucf6bQNxg8
    --  4QIDAQAB
    --  -----END PUBLIC KEY-----

    EXEC @hr = sp_OADestroy @rsa
    EXEC @hr = sp_OADestroy @privKey
    EXEC @hr = sp_OADestroy @pubKey


END
GO