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) Write PKCS1 or PKCS8 Public Key PEMDemonstrates how to write either PKCS1 or PKCS8 format PEM files. PKCS1 public keys have this PEM format: -----BEGIN RSA PUBLIC KEY----- BASE64 ENCODED DATA -----END RSA PUBLIC KEY-----PKCS8 public keys have this PEM format: -----BEGIN PUBLIC KEY----- BASE64 ENCODED DATA -----END PUBLIC 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) -- Unlock the Chilkat API. -- Starting in v9.5.0.49, all Chilkat classes can be unlocked at once at the beginning of a program -- by calling UnlockBundle. It requires a Bundle unlock code. DECLARE @chilkatGlob int -- Use "Chilkat_9_5_0.Global" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Global', @chilkatGlob OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @chilkatGlob, 'UnlockBundle', @success OUT, 'Anything for 30-day trial.' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @chilkatGlob, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @chilkatGlob RETURN END DECLARE @pem int -- Use "Chilkat_9_5_0.Pem" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Pem', @pem OUT -- Load a public key from a PEM file. -- (Assume the PEM contains at least one public key..) EXEC sp_OAMethod @pem, 'LoadPemFile', @success OUT, '/Users/chilkat/testData/pem/myPublicKey.pem' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @pem, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @chilkatGlob EXEC @hr = sp_OADestroy @pem RETURN END DECLARE @i int DECLARE @numPublicKeys int EXEC sp_OAGetProperty @pem, 'NumPublicKeys', @numPublicKeys OUT IF @numPublicKeys = 0 BEGIN PRINT ('Error: Expected the PEM to contain public keys.') EXEC @hr = sp_OADestroy @chilkatGlob EXEC @hr = sp_OADestroy @pem RETURN END -- Get each public key as PEM, first in PKCS1 format, then in PKCS8. SELECT @i = 1 WHILE @i <= @numPublicKeys BEGIN -- First output to PKCS1 PEM format: PRINT 'This is PKCS1 format:' EXEC sp_OASetProperty @pem, 'PublicKeyFormat', 'pkcs1' EXEC sp_OAMethod @pem, 'ToPem', @sTmp0 OUT PRINT @sTmp0 -- Now PKCS8 PEM format: PRINT 'This is PKCS8 format:' EXEC sp_OASetProperty @pem, 'PublicKeyFormat', 'pkcs8' EXEC sp_OAMethod @pem, 'ToPem', @sTmp0 OUT PRINT @sTmp0 SELECT @i = @i + 1 END EXEC @hr = sp_OADestroy @chilkatGlob EXEC @hr = sp_OADestroy @pem END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.