PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkPfx.pb"
IncludeFile "CkJavaKeyStore.pb"
Procedure ChilkatExample()
success.i = 0
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
jks.i = CkJavaKeyStore::ckCreate()
If jks.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
pfx.i = CkPfx::ckCreate()
If pfx.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Combines several PKCS12's into a single JKS.
; Simply load each, add it to the keystore, and then
; save at the very end.
alias.s
pfxPassword.s
jksPassword.s = "jksSecret"
; Add the 1st PFX...
pfxPassword = "secret1"
success = CkPfx::ckLoadPfxFile(pfx,"/someDir/file1.p12",pfxPassword)
If success <> 1
Debug CkPfx::ckLastErrorText(pfx)
CkJavaKeyStore::ckDispose(jks)
CkPfx::ckDispose(pfx)
ProcedureReturn
EndIf
alias = "alias1"
success = CkJavaKeyStore::ckAddPfx(jks,pfx,alias,jksPassword)
If success <> 1
Debug CkJavaKeyStore::ckLastErrorText(jks)
CkJavaKeyStore::ckDispose(jks)
CkPfx::ckDispose(pfx)
ProcedureReturn
EndIf
; Add the 2nd PFX...
pfxPassword = "secret2"
success = CkPfx::ckLoadPfxFile(pfx,"/someDir/file2.p12",pfxPassword)
If success <> 1
Debug CkPfx::ckLastErrorText(pfx)
CkJavaKeyStore::ckDispose(jks)
CkPfx::ckDispose(pfx)
ProcedureReturn
EndIf
alias = "alias2"
success = CkJavaKeyStore::ckAddPfx(jks,pfx,alias,jksPassword)
If success <> 1
Debug CkJavaKeyStore::ckLastErrorText(jks)
CkJavaKeyStore::ckDispose(jks)
CkPfx::ckDispose(pfx)
ProcedureReturn
EndIf
; We can continue adding as many PFX's as desired...
; Write the Java keystore to a file:
success = CkJavaKeyStore::ckToFile(jks,jksPassword,"/jksFiles/my.jks")
If success <> 1
Debug CkJavaKeyStore::ckLastErrorText(jks)
Else
Debug "Successfully combined multiple PKCS12's into a single JKS"
EndIf
CkJavaKeyStore::ckDispose(jks)
CkPfx::ckDispose(pfx)
ProcedureReturn
EndProcedure