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
(Delphi DLL) Export Digital Certificate's Public KeyThe ExportPublicKey method can be called to get a certificate's public key. It can then be saved to any of a number of formats: (1) OpenSSL DER, (2) OpenSSL PEM, (3) RSA DER, (4) XML.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Cert, PublicKey; ... procedure TForm1.Button1Click(Sender: TObject); var cert: HCkCert; success: Boolean; pubkey: HCkPublicKey; begin cert := CkCert_Create(); // LoadFromFile will load virtually any certificate format file. // It will auto-recognize the format and load appropiately. success := CkCert_LoadFromFile(cert,'/Users/chilkat/testData/cer/chilkat.cer'); if (success <> True) then begin Memo1.Lines.Add(CkCert__lastErrorText(cert)); Exit; end; // Get the public key: pubkey := CkCert_ExportPublicKey(cert); if (CkCert_getLastMethodSuccess(cert) = False) then begin Memo1.Lines.Add(CkCert__lastErrorText(cert)); Exit; end; // Save to various formats: success := CkPublicKey_SaveDerFile(pubkey,False,'/Users/chilkat/testData/pubkeys/chilkat_pkcs8.der'); if (success <> True) then begin Memo1.Lines.Add(CkPublicKey__lastErrorText(pubkey)); CkPublicKey_Dispose(pubkey); Exit; end; success := CkPublicKey_SavePemFile(pubkey,False,'/Users/chilkat/testData/pubkeys/chilkat.pem'); if (success <> True) then begin Memo1.Lines.Add(CkPublicKey__lastErrorText(pubkey)); CkPublicKey_Dispose(pubkey); Exit; end; success := CkPublicKey_SaveDerFile(pubkey,True,'/Users/chilkat/testData/pubkeys/chilkat_pkcs1.der'); if (success <> True) then begin Memo1.Lines.Add(CkPublicKey__lastErrorText(pubkey)); CkPublicKey_Dispose(pubkey); Exit; end; success := CkPublicKey_SaveXmlFile(pubkey,'/Users/chilkat/testData/pubkeys/chilkat.xml'); if (success <> True) then begin Memo1.Lines.Add(CkPublicKey__lastErrorText(pubkey)); CkPublicKey_Dispose(pubkey); Exit; end; CkPublicKey_Dispose(pubkey); Memo1.Lines.Add('Public key exported to all file formats.'); CkCert_Dispose(cert); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.