Zig
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
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});
}