Sample code for 30+ languages & platforms
Zig

Load PuTTY Private Key

See more SSH Key Examples

Loads a PuTTY private key into an SSH key object.

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();

    var success: bool = false;

    const sb = try chilkat.StringBuilder.init();
    defer sb.deinit();
    const b_crlf = true;
    sb.appendLine("PuTTY-User-Key-File-2: ssh-rsa", b_crlf) catch {};
    sb.appendLine("Encryption: aes256-cbc", b_crlf) catch {};
    sb.appendLine("Comment: rsa-key-20161121", b_crlf) catch {};
    sb.appendLine("Public-Lines: 6", b_crlf) catch {};
    sb.appendLine("AAAAB3NzaC1yc2EAAAABJQAAAQEArIVxZTGYjqqNegJeMqgZzXKuX3YtxmD4DPnQ", b_crlf) catch {};
    sb.appendLine("K01SXoR9UA4wl6RJK5FGonI5spVnddr6HJny0eY5/RmV1dyL0fNdH2pfnHHoTd9B", b_crlf) catch {};
    sb.appendLine("uXG0PcTn4BqJFlybC6NNaGaByqpNPaOgjJIMHXTaeCuDuzwP02f3UKSfLAFdvUNP", b_crlf) catch {};
    sb.appendLine("fX3yrMRabjVcHJpgUn535Y9Y3ZphSFssiElLpp1vo6QLsdiAl0wgU4HLw9Dfg8sh", b_crlf) catch {};
    sb.appendLine("p3zgAufYUUIx2HChITJ7OO/PH5GEbPvJFbYH4Wx33GEe56JCF9QxxDCqNxsPMrvu", b_crlf) catch {};
    sb.appendLine("mqkSIPIELFl5zVYSFD9PiL8RZQcPJGq5zbF9+szsS/6DSH8biw==", b_crlf) catch {};
    sb.appendLine("Private-Lines: 14", b_crlf) catch {};
    sb.appendLine("SVqUm9zBUN6zaAaUY6TLnIXAhxqv4s1UhzukcN7Ns0Fs1EqdDP4nVMKgmiDxHaAj", b_crlf) catch {};
    sb.appendLine("ucb1PLv7uj2eGt69E+HKH4AC2LtJZNH4qLw+p8QKqdN79oRAMHwtS4cU88eeQ91t", b_crlf) catch {};
    sb.appendLine("2W3wzmTzvYFlE6VbUr3bNl3f68OCQHz+7YJuL8g0eclNuveHB/VmBqnek1LL/cRY", b_crlf) catch {};
    sb.appendLine("wmk8wyzHRl7X8fyjGX0PiOPyVwXBDJFNjjKAdrRCRS0Cc4PWAb/18qrA9ApArQVk", b_crlf) catch {};
    sb.appendLine("a5miOMfrXFF2Vg3JyNgfdDilNKkry9x5oTtfueZkFgu/6pofP5qrTstr+BmB16mu", b_crlf) catch {};
    sb.appendLine("MxcDRF+jOm9XvU1OnrzQ9rBzuaHEfhSHqlKyMGTDuzRtNyxlDBgK4DaZ2z1FJQGF", b_crlf) catch {};
    sb.appendLine("63p36KgVqx571PUJ8P/28VUb6s/OtXcjhxxvhC8Eo0wrTdjzDiX+IovdjOhWgn4v", b_crlf) catch {};
    sb.appendLine("xugaYocotTbhqq+O1w9xYtmG8fP921+TIpHzCkE8QTJzLJ40pemKZ+TAOmhb0OUQ", b_crlf) catch {};
    sb.appendLine("jemqmRohcxx7NEoZ0TsoAe6i+GQJ2cEE7LcNcSX3V66AkyTsTieqk1nSxyHyoF+l", b_crlf) catch {};
    sb.appendLine("rTaVOhFM5H8Etzv94SP3c1if3Qa9cmZaEmfaqrS94bzX+OY/zRIFweT0BeMo3Uac", b_crlf) catch {};
    sb.appendLine("fP6gBDBiLYZeRURcx0mYRdNYlssaKoYLA6c7F3ggo34VfgD6LP+ZYnG8yAXGXSPr", b_crlf) catch {};
    sb.appendLine("lgrfdg/szqSsOKVdkoGTkVy+BgrhITnFIs8TLZsrtSEPmXjEa+QvdP6FPsyN5u6P", b_crlf) catch {};
    sb.appendLine("8s0i8EC0KT0YA77Ps29DEU3fxsXVSc9Xd9qdiWfJ0ce2hOsTwxL1gxtXUKP4xCzm", b_crlf) catch {};
    sb.appendLine("oXaWLFajiws2EjgBbwREj12v0I2N4xrpf/PeJq22EvWLYm9H94DdFrkm0b4p6Kmu", b_crlf) catch {};
    sb.appendLine("Private-MAC: ef04289f158f498b8050e19f1630b4764fe64ab9", b_crlf) catch {};

    const ssh_key = try chilkat.SshKey.init();
    defer ssh_key.deinit();

    // Must specify a password for this PuTTY private key because it is encrypted.
    ssh_key.setPassword("secret");

    success = if (ssh_key.fromPuttyPrivateKey(try sb.getAsString(alloc))) true else |_| false;
    if (!success) {
        std.debug.print("{s}\n", .{try ssh_key.getLastErrorText(alloc)});
        std.debug.print("Failed.\n", .{});
    }

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