Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Export a Certificate's Private Key to Various FormatsLoads a digital certificate and private key from a PFX file (also known as PKCS#12) and exports the private key to various formats: (1) PKCS8 Encrypted, (2) PKCS8 Encrypted PEM, (3) PKCS8 unencrypted, (4) PKCS8 PEM unencrypted, (5) RSA DER unencrypted, (6) RSA PEM unencrypted, (7) XML. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCERTIFICATELib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var cert: TChilkatCert; success: Integer; pfxFilename: String; pfxPassword: String; privKey: CHILKATCERTIFICATELib_TLB.IPrivateKey; password: String; path: String; begin cert := TChilkatCert.Create(Self); // Load from the PFX file pfxFilename := '/Users/chilkat/testData/pfx/chilkat_ssl_pwd_is_test.pfx'; pfxPassword := 'test'; // A PFX typically contains certificates in the chain of authentication. // The Chilkat cert object will choose the certificate w/ // private key farthest from the root authority cert. // To access all the certificates in a PFX, use the // Chilkat certificate store object instead. success := cert.LoadPfxFile(pfxFilename,pfxPassword); if (success <> 1) then begin Memo1.Lines.Add(cert.LastErrorText); Exit; end; // Get the private key... privKey := cert.ExportPrivateKey() As CHILKATCERTIFICATELib_TLB.IPrivateKey; if (privKey = nil ) then begin Memo1.Lines.Add(cert.LastErrorText); Exit; end; // Export to various formats: password := 'secret'; // PKCS8 Encrypted DER path := '/Users/chilkat/testData/privkeys/chilkat_pkcs8_enc.der'; success := privKey.SavePkcs8EncryptedFile(password,path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; // PKCS8 Encrypted PEM path := '/Users/chilkat/testData/privkeys/chilkat_pkcs8_enc.pem'; success := privKey.SavePkcs8EncryptedPemFile(password,path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; // PKCS8 Unencrypted DER path := '/Users/chilkat/testData/privkeys/chilkat_pkcs8.der'; success := privKey.SavePkcs8File(path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; // PKCS8 Unencrypted PEM path := '/Users/chilkat/testData/privkeys/chilkat_pkcs8.pem'; success := privKey.SavePkcs8PemFile(path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; // RSA DER (unencrypted) path := '/Users/chilkat/testData/privkeys/chilkat_rsa.der'; success := privKey.SaveRsaDerFile(path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; // RSA PEM (unencrypted) path := '/Users/chilkat/testData/privkeys/chilkat_rsa.pem'; success := privKey.SaveRsaPemFile(path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; // XML (unencrypted) path := '/Users/chilkat/testData/privkeys/chilkat.xml'; success := privKey.SaveXmlFile(path); if (success <> 1) then begin Memo1.Lines.Add(privKey.LastErrorText); Exit; end; Memo1.Lines.Add('Private key exported to all formats.'); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.