Sample code for 30+ languages & platforms
Tcl

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 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 oldJksPassword "existingPassword"
set newJksPassword "newPassword"
set jksPath "/someDir/keyStore.jks"

# Load the Java keystore from a file.
set success [CkJavaKeyStore_LoadFile $jks $oldJksPassword $jksPath]
if {$success != 1} then {
    puts [CkJavaKeyStore_lastErrorText $jks]
    delete_CkJavaKeyStore $jks
    exit
}

# If the JKS contains private key entries, then each
# must be re-keyed with the new password by calling ChangePassword.
set numPrivateKeys [CkJavaKeyStore_get_NumPrivateKeys $jks]

set i 0
while {$i < $numPrivateKeys} {

    set success [CkJavaKeyStore_ChangePassword $jks $i $oldJksPassword $newJksPassword]
    if {$success != 1} then {
        puts [CkJavaKeyStore_lastErrorText $jks]
        delete_CkJavaKeyStore $jks
        exit
    }

    set i [expr $i + 1]
}

# Write the JKS using the new password for the JKS file's keyed digest.
set success [CkJavaKeyStore_ToFile $jks $newJksPassword $jksPath]
if {$success != 1} then {
    puts [CkJavaKeyStore_lastErrorText $jks]
    delete_CkJavaKeyStore $jks
    exit
}

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

delete_CkJavaKeyStore $jks