Delphi ActiveX
Delphi ActiveX
Convert PFX to Encrypted PEM
See more PFX/P12 Examples
Loads a PFX (PKCS12) and converts to encrypted PEM.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
pfx: TChilkatPfx;
extendedAttrs: Integer;
noKeys: Integer;
noCerts: Integer;
noCaCerts: Integer;
encryptAlg: WideString;
pemPassword: WideString;
strPem: WideString;
begin
success := 0;
pfx := TChilkatPfx.Create(Self);
success := pfx.LoadPfxFile('qa_data/pfx/myCert.pfx','secret');
if (success <> 1) then
begin
Memo1.Lines.Add(pfx.LastErrorText);
Exit;
end;
// If extendedAttrs is 1, then extended properties (Bag Attributes and Key Attributes) are included in the output.
extendedAttrs := 0;
// Set noKeys = 1 to omit private keys from the output.
noKeys := 0;
// Set noCerts = 1 to omit certificates from the output.
noCerts := 0;
// Set noCaCerts = 1 to omit CA certificates from the output.
noCaCerts := 0;
// The encrypt algorithm can be "des3", "aes128", "aes192", or "aes256"
encryptAlg := 'aes128';
pemPassword := 'myPemPassword';
strPem := pfx.ToPemEx(extendedAttrs,noKeys,noCerts,noCaCerts,encryptAlg,pemPassword);
Memo1.Lines.Add(strPem);
// Sample output:
//
// -----BEGIN ENCRYPTED PRIVATE KEY-----
// MIIFLzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIUTSIiX9LffYCAggA
// ...
// ...
// ...
// JHIkvQ0sld9EIyKhqG2ep+H7V6n6CcQp9sQx1VGgvOQjK9Q=
// -----END ENCRYPTED PRIVATE KEY-----
// -----BEGIN CERTIFICATE-----
// MIIFRjCCBC6gAwIBAgIRALgZeKhNjDgwdOQuYedzOVAwDQYJKoZIhvcNAQELBQAw
// gZsxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
// BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMUEwPwYD
// VQQDEzhDT01PRE8gU0hBLTI1NiBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNl
// Y3VyZSBFbWFpbCBDQTAeFw0xNjAzMTgwMDAwMDBaFw0xNzAzMTgyMzU5NTlaMCgx
// JjAkBgkqhkiG9w0BCQEWF3N1cHBvcnRAY2hpbGthdHNvZnQuY29tMIIBIjANBgkq
// hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1SNh38NxEWARSLLmUlCxxn1CersmEhA0
// Ix+22Cg7zGaXEJyL86oewaoFErq1cQB4/56YG5goLGRUsHk20KCoM+zAaGMAyZha
// mA+YsoETaJ12KJknbz3XY1HrudOdyCY8bEEIUv7o/cXXrMhTP4tuuHb5dl25ZBio
// +1UAcEqfCkrKxvmjuFQ0I0u3N3xezPG1RNWdmiI9G/bEtXGK0dD+9waAFD+7uKLF
// uVhPV75LUYmJAT352NMddiP/qCqij53lg8eTfCyyJ1PhddNCsjT+CL6EFoOKm2cz
// IqJ1aUy76OGgXDkejqCEOm5VLB+ldWBUHety0P5fX8CzMvaj8RxQFwIDAQABo4IB
// 9TCCAfEwHwYDVR0jBBgwFoAUkmFrguGioKpP7GfxwqP3tIAAwewwHQYDVR0OBBYE
// FDTDFq26hSRzTEdIGqTl/AZAjT4kMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8E
// AjAAMCAGA1UdJQQZMBcGCCsGAQUFBwMEBgsrBgEEAbIxAQMFAjARBglghkgBhvhC
// AQEEBAMCBSAwRgYDVR0gBD8wPTA7BgwrBgEEAbIxAQIBAQEwKzApBggrBgEFBQcC
// ARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLm5ldC9DUFMwXQYDVR0fBFYwVDBSoFCg
// ToZMaHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RPU0hBMjU2Q2xpZW50QXV0
// aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNybDCBkAYIKwYBBQUHAQEEgYMw
// gYAwWAYIKwYBBQUHMAKGTGh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1NI
// QTI1NkNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcnQwJAYI
// KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAiBgNVHREEGzAZgRdz
// dXBwb3J0QGNoaWxrYXRzb2Z0LmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAPSLQObU3
// eU+vgmydxUftZo41OBhzGz0IiN8Hqr1mBejr26Gts3QrndN8JzOwGEPQvf7d7fRe
// lMOd8+a6DfDm7Dbr5SwzqFti1xSe29Zj2IMxlDRYRW/ODuCfSeixl7nvilBdgiGG
// +Bb0wrGLq5/UeV4xP5vvtDbcWdDED0shc30Kwp5FIYbU2HJ/9gcU/0ZZEA/ml0r+
// Q8XDgVeSe/gLNvIjsQBxwbhrdQm911iNEFY9B33rYwqMnVuKc3OgetTxx6V6hxLz
// jed1eLsqxx3Lag4oaSiVsoNjyXvvvaJ1MGwEKM+Pi98w9awlSLnBLYvM+5N1NvsJ
// TUUKcT17pt3C5w==
// -----END CERTIFICATE-----
// -----BEGIN CERTIFICATE-----
// MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
// MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
// IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
// MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
// FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
// bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
// dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
// H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
// uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
// mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
// a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
// E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
// WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
// VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
// Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
// cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
// IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
// AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
// YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
// 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
// Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
// c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
// mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
// -----END CERTIFICATE-----
// -----BEGIN CERTIFICATE-----
// MIIErzCCA5egAwIBAgIRAOAjyxUSg1OJrWFuelRnayEwDQYJKoZIhvcNAQELBQAw
// bzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1B
// ZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3Qg
// RXh0ZXJuYWwgQ0EgUm9vdDAeFw0xNDEyMjIwMDAwMDBaFw0yMDA1MzAxMDQ4Mzha
// MIGbMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAw
// DgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDFBMD8G
// A1UEAxM4Q09NT0RPIFNIQS0yNTYgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBT
// ZWN1cmUgRW1haWwgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCJ
// sQ3aelMZTnBSHbxWpgYmt7hJ4JbnUavx8FoTSRWjtIwbYLx6UUKneYykIt8XYU6R
// 1XYjChTTSgJ/th0JgG6lBD3ZursW/qGHqS5DUkMWfK8yUMimT1rpCNjPkyWce4jo
// MGTmpPhWgP0qJBQzF5msROVpi6NGBkvCM9TpQJ8GsLGsk0C5tQiTOpwqU6MQ2z0g
// YTxVA47ZTnYlAiEp+qN8cXZP7uFfgen7VIDbw3s1UreE3iI9LDAtMX9ZvVI3sDNp
// LUPr+tal8Zd3Z1GM2e4n67ylBzh2jKSpOP/fjPUDrEm+yvdzmToPMquclToTPQ5G
// Old0YVC+xkA/y+Tin6IhAgMBAAGjggEXMIIBEzAfBgNVHSMEGDAWgBStvZh6NLQm
// 9/rEJlTvA73gJMtUGjAdBgNVHQ4EFgQUkmFrguGioKpP7GfxwqP3tIAAwewwDgYD
// VR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYIKwYB
// BQUHAwIGCCsGAQUFBwMEMBEGA1UdIAQKMAgwBgYEVR0gADBEBgNVHR8EPTA7MDmg
// N6A1hjNodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RFeHRlcm5hbENB
// Um9vdC5jcmwwNQYIKwYBBQUHAQEEKTAnMCUGCCsGAQUFBzABhhlodHRwOi8vb2Nz
// cC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAbKm6sVcE6q4jF2O3N
// VfOqa2ErwAkQI5kPxWZqb7H1tLV3Xg8CYQDffQX+ErOkgIAA/PsdW2pyAgpBvAW6
// wVjVJsLq1U2E+/6CmM9YG+MiY5xS+LsFNqt9WKXeqztj5drVc+/s4Pt74qP/8EIj
// nMq2jU0+5EsYA7KoLdTYu0JLkGmFENumNzToe+ABEKWcyjrHn0+ING6KZdAairup
// 3MrKNtH0/MJkKTWv1rGncRHSA0Oxjz6a7J4yU/R2ksqGNAe5LMrmHErYmQ3BhuKQ
// kvtaQmojIRDpZcf11bt+6oyFIAJi6tE6ByxZxZkz8jiJ5bbpFnofeRT2ShAaJvp8
// ivub
// -----END CERTIFICATE-----
//
end;