Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3/4 Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(Delphi DLL) Generate RSA Key and Export to Encrypted PEMDelphi DLL sample showing how to generate an RSA key and export to encrypted PEM.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, PrivateKey, Rsa; ... procedure TForm1.Button1Click(Sender: TObject); var rsa: HCkRsa; success: Boolean; keyXml: PWideChar; privKey: HCkPrivateKey; strEncPem: PWideChar; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. rsa := CkRsa_Create(); // Generate a 1024-bit key. Chilkat RSA supports // key sizes ranging from 512 bits to 4096 bits. success := CkRsa_GenerateKey(rsa,1024); if (success <> True) then begin Memo1.Lines.Add(CkRsa__lastErrorText(rsa)); Exit; end; // Get the private key as unencrypted XML: keyXml := CkRsa__exportPrivateKey(rsa); Memo1.Lines.Add(keyXml); // To encrypt the key -- meaning to get the key in // an encrypted PEM format -- load it into a PrivateKey object, // and then export to encrypted PEM: privKey := CkPrivateKey_Create(); success := CkPrivateKey_LoadXml(privKey,keyXml); if (success <> True) then begin Memo1.Lines.Add(CkPrivateKey__lastErrorText(privKey)); Exit; end; strEncPem := CkPrivateKey__getPkcs8EncryptedPem(privKey,'myPassword'); // You now have the private key in an encrypted format, // which may be (for example) saved to a database CkRsa_Dispose(rsa); CkPrivateKey_Dispose(privKey); end; |
© 2000-2019 Chilkat Software, Inc. All Rights Reserved.