Sample code for 30+ languages & platforms
PureBasic

Change Password for Java KeyStore File

See more Java KeyStore (JKS) Examples

Demonstrates how to load a Java keystore, change the password, and save using the new password. If the Java keystore contains only trusted root certificates, then it's simply a matter of loading the JKS with the existing password, and then saving with a new password. If the JKS contains private key entries, then each private key entry must be re-keyed using the new password by calling the ChangePassword method.

Chilkat PureBasic Downloads

PureBasic
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

    oldJksPassword.s = "existingPassword"
    newJksPassword.s = "newPassword"
    jksPath.s = "/someDir/keyStore.jks"

    ; Load the Java keystore from a file.
    success = CkJavaKeyStore::ckLoadFile(jks,oldJksPassword,jksPath)
    If success <> 1
        Debug CkJavaKeyStore::ckLastErrorText(jks)
        CkJavaKeyStore::ckDispose(jks)
        ProcedureReturn
    EndIf

    ; If the JKS contains private key entries, then each
    ; must be re-keyed with the new password by calling ChangePassword.
    numPrivateKeys.i = CkJavaKeyStore::ckNumPrivateKeys(jks)

    i.i = 0
    While i < numPrivateKeys

        success = CkJavaKeyStore::ckChangePassword(jks,i,oldJksPassword,newJksPassword)
        If success <> 1
            Debug CkJavaKeyStore::ckLastErrorText(jks)
            CkJavaKeyStore::ckDispose(jks)
            ProcedureReturn
        EndIf

        i = i + 1
    Wend

    ; Write the JKS using the new password for the JKS file's keyed digest.
    success = CkJavaKeyStore::ckToFile(jks,newJksPassword,jksPath)
    If success <> 1
        Debug CkJavaKeyStore::ckLastErrorText(jks)
        CkJavaKeyStore::ckDispose(jks)
        ProcedureReturn
    EndIf

    Debug "Updated the password for the Java keystore file."


    CkJavaKeyStore::ckDispose(jks)


    ProcedureReturn
EndProcedure