Sample code for 30+ languages & platforms
Zig

UN/EDIFACT Syntax Level A Encoding/Decoding

See more Encryption Examples

Demonstrates the new "eda" encoding that can be used throughout Chilkat starting in v9.5.0.65.

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

    // Note: Requires Chilkat v9.5.0.65 or greater.

    const sb = try chilkat.StringBuilder.init();
    defer sb.deinit();
    sb.append("The 5 men of 223rd St") catch {};
    std.debug.print("{s}\n", .{try sb.getAsString(alloc)});

    // Encode the utf-8 byte representation of the string in the
    // UN/EDIFACT syntax level A character set.
    sb.encode("eda", "utf-8") catch {};
    std.debug.print("{s}\n", .{try sb.getAsString(alloc)});

    // EDA Output should be: BTME027FCF6CFARFI94JT6.)F(14KJ2U

    // Decode back to the original string.
    sb.decode("eda", "utf-8") catch {};
    std.debug.print("{s}\n", .{try sb.getAsString(alloc)});
    std.debug.print("----\n", .{});

    // The following requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // The "eda" encoding can be used anywhere within Chilkat.
    // For example, with the Crypt2 API
    const crypt = try chilkat.Crypt2.init();
    defer crypt.deinit();
    crypt.setCryptAlgorithm("aes");
    crypt.setCipherMode("cbc");
    crypt.setKeyLength(256);
    crypt.setEncodingMode("eda");

    const iv_hex = "000102030405060708090A0B0C0D0E0F";
    crypt.setEncodedIV(iv_hex, "hex");
    const key_hex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F";
    crypt.setEncodedKey(key_hex, "hex");

    const enc_str = try crypt.encryptStringENC(alloc, "The quick brown fox jumps over the lazy dog.");
    // The output is UN/EDIFACT syntax level A
    std.debug.print("{s}\n", .{enc_str});

    // Now decrypt:
    const dec_str = try crypt.decryptStringENC(alloc, enc_str);
    std.debug.print("{s}\n", .{dec_str});
}