Zig
Zig
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 Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const jks = try chilkat.JavaKeyStore.init();
defer jks.deinit();
const old_jks_password = "existingPassword";
const new_jks_password = "newPassword";
const jks_path = "/someDir/keyStore.jks";
// Load the Java keystore from a file.
jks.loadFile(old_jks_password, jks_path) catch {
std.debug.print("{s}\n", .{try jks.getLastErrorText(alloc)});
return;
};
// If the JKS contains private key entries, then each
// must be re-keyed with the new password by calling ChangePassword.
const num_private_keys = jks.getNumPrivateKeys();
var i: i32 = 0;
while (i < num_private_keys) {
jks.changePassword(i, old_jks_password, new_jks_password) catch {
std.debug.print("{s}\n", .{try jks.getLastErrorText(alloc)});
return;
};
i = i + 1;
}
// Write the JKS using the new password for the JKS file's keyed digest.
jks.toFile(new_jks_password, jks_path) catch {
std.debug.print("{s}\n", .{try jks.getLastErrorText(alloc)});
return;
};
std.debug.print("Updated the password for the Java keystore file.\n", .{});
}