Sample code for 30+ languages & platforms
Xbase++

Combine Multiple PKCS12's into a Single Java KeyStore

See more Java KeyStore (JKS) Examples

Combines multiple PKCS12's into a single Java KeyStore (JKS) file. To combine multiple PKCS12 files into a single JKS, simply load each PKCS12 into a PFX object, add it to the Java keystore object via the AddPfx method, and then finally write the Java keystore at the very end.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oJks
LOCAL oPfx
LOCAL cAlias
LOCAL cPfxPassword
LOCAL cJksPassword

nSuccess := 0

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

oJks := CreateObject("Chilkat.JavaKeyStore")

oPfx := CreateObject("Chilkat.Pfx")

//  Combines several PKCS12's into a single JKS.
//  Simply load each, add it to the keystore, and then 
//  save at the very end.

cJksPassword := "jksSecret"

//  Add the 1st PFX...
cPfxPassword := "secret1"
nSuccess := oPfx:LoadPfxFile("/someDir/file1.p12", cPfxPassword)
IF (nSuccess != 1)
    ? oPfx:LastErrorText
    oJks:destroy()
    oPfx:destroy()
    RETURN
ENDIF

cAlias := "alias1"
nSuccess := oJks:AddPfx(oPfx, cAlias, cJksPassword)
IF (nSuccess != 1)
    ? oJks:LastErrorText
    oJks:destroy()
    oPfx:destroy()
    RETURN
ENDIF

//  Add the 2nd PFX...
cPfxPassword := "secret2"
nSuccess := oPfx:LoadPfxFile("/someDir/file2.p12", cPfxPassword)
IF (nSuccess != 1)
    ? oPfx:LastErrorText
    oJks:destroy()
    oPfx:destroy()
    RETURN
ENDIF

cAlias := "alias2"
nSuccess := oJks:AddPfx(oPfx, cAlias, cJksPassword)
IF (nSuccess != 1)
    ? oJks:LastErrorText
    oJks:destroy()
    oPfx:destroy()
    RETURN
ENDIF

//  We can continue adding as many PFX's as desired...

//  Write the Java keystore to a file:
nSuccess := oJks:ToFile(cJksPassword, "/jksFiles/my.jks")
IF (nSuccess != 1)
    ? oJks:LastErrorText
ELSE
    ? "Successfully combined multiple PKCS12's into a single JKS"
ENDIF

oJks:destroy()
oPfx:destroy()