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