Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set jks [new_CkJavaKeyStore]

set pfx [new_CkPfx]

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

set jksPassword "jksSecret"

# Add the 1st PFX...
set pfxPassword "secret1"
set success [CkPfx_LoadPfxFile $pfx "/someDir/file1.p12" $pfxPassword]
if {$success != 1} then {
    puts [CkPfx_lastErrorText $pfx]
    delete_CkJavaKeyStore $jks
    delete_CkPfx $pfx
    exit
}

set alias "alias1"
set success [CkJavaKeyStore_AddPfx $jks $pfx $alias $jksPassword]
if {$success != 1} then {
    puts [CkJavaKeyStore_lastErrorText $jks]
    delete_CkJavaKeyStore $jks
    delete_CkPfx $pfx
    exit
}

# Add the 2nd PFX...
set pfxPassword "secret2"
set success [CkPfx_LoadPfxFile $pfx "/someDir/file2.p12" $pfxPassword]
if {$success != 1} then {
    puts [CkPfx_lastErrorText $pfx]
    delete_CkJavaKeyStore $jks
    delete_CkPfx $pfx
    exit
}

set alias "alias2"
set success [CkJavaKeyStore_AddPfx $jks $pfx $alias $jksPassword]
if {$success != 1} then {
    puts [CkJavaKeyStore_lastErrorText $jks]
    delete_CkJavaKeyStore $jks
    delete_CkPfx $pfx
    exit
}

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

# Write the Java keystore to a file:
set success [CkJavaKeyStore_ToFile $jks $jksPassword "/jksFiles/my.jks"]
if {$success != 1} then {
    puts [CkJavaKeyStore_lastErrorText $jks]
} else {
    puts "Successfully combined multiple PKCS12's into a single JKS"
}


delete_CkJavaKeyStore $jks
delete_CkPfx $pfx