Sample code for 30+ languages & platforms
Delphi ActiveX

Load PFX with Different Password for Private Keys

See more PFX/P12 Examples

Demonstrates how to load a PFX where the HMAC integrity password (the password for the entire PFX) is different than the password for the private keys contained inside.

Note: This example requires a new feature made available in Chilkat v9.5.0.75.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
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;
json: TChilkatJsonObject;

begin
success := 0;

pfx := TChilkatPfx.Create(Self);
json := TChilkatJsonObject.Create(Self);

// Build JSON containing the HMAC integrity (PFX) password, and the 
// password for the private keys.
json.UpdateString('integrity','password1');
json.UpdateString('privKeys','password2');

// The JSON contains this:
// 
// 	{
// 	  "integrity": "password1",
// 	  "privKeys": "password2"
// 	}
// 

// Use the above JSON instead of a simple password string when loading the PFX:
success := pfx.LoadPfxFile('qa_data/pfx/PrivateKeyPassIsDifferent.pfx',json.Emit());
if (success <> 1) then
  begin
    Memo1.Lines.Add(pfx.LastErrorText);
    Exit;
  end;

Memo1.Lines.Add('Success.');
end;