Sample code for 30+ languages & platforms
Zig

Load PFX with Different Password for Private Keys

See more PFX/P12 Examples

Demonstrates how to load a PFX where the HMAC integrity password (the password for the entire PFX) is different than the password for the private keys contained inside.

Note: This example requires a new feature made available in Chilkat v9.5.0.75.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    const pfx = try chilkat.Pfx.init();
    defer pfx.deinit();
    const json = try chilkat.JsonObject.init();
    defer json.deinit();

    // Build JSON containing the HMAC integrity (PFX) password, and the
    // password for the private keys.
    json.updateString("integrity", "password1") catch {};
    json.updateString("privKeys", "password2") catch {};

    // The JSON contains this:
    //
    //     {
    //       "integrity": "password1",
    //       "privKeys": "password2"
    //     }
    //

    // Use the above JSON instead of a simple password string when loading the PFX:
    pfx.loadPfxFile("qa_data/pfx/PrivateKeyPassIsDifferent.pfx", try json.emit(alloc)) catch {
        std.debug.print("{s}\n", .{try pfx.getLastErrorText(alloc)});
        return;
    };

    std.debug.print("Success.\n", .{});
}