Sample code for 30+ languages & platforms
Delphi DLL

Convert PKCS12 / PFX to Java Keystore (JKS)

See more PFX/P12 Examples

Loads a PKCS12 / PFX file and saves it to a Java keystore (JKS) file.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Pfx, JavaKeyStore;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
pfx: HCkPfx;
jksPassword: PWideChar;
alias: PWideChar;
jks: HCkJavaKeyStore;

begin
success := False;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

pfx := CkPfx_Create();

// Load the PKCS12 from a file
success := CkPfx_LoadPfxFile(pfx,'/someDir/my.p12','myPfxPassword');
if (success = False) then
  begin
    Memo1.Lines.Add(CkPfx__lastErrorText(pfx));
    Exit;
  end;

jksPassword := 'myJksPassword';
alias := 'firstPrivateKeyAlias';

jks := CkJavaKeyStore_Create();

// Convert to a Java keystore object.
// The jksPassword is the password to be used for the JKS private key entries. 
// It may be the same as the PFX password, but can also be different if desired.
success := CkPfx_ToJksObj(pfx,alias,jksPassword,jks);
if (success = False) then
  begin
    Memo1.Lines.Add(CkPfx__lastErrorText(pfx));
    Exit;
  end;

// Save the Java keystore to a file.
success := CkJavaKeyStore_ToFile(jks,jksPassword,'/myKeystores/my.jks');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkJavaKeyStore__lastErrorText(jks));
    CkJavaKeyStore_Dispose(jks);
    Exit;
  end;

Memo1.Lines.Add('Successfully converted PFX to JKS.');

CkPfx_Dispose(pfx);
CkJavaKeyStore_Dispose(jks);

end;