From f50023521d1d80d2df0f039eec0db6fddb92c033 Mon Sep 17 00:00:00 2001 From: Mathias Magnusson Date: Sat, 6 Jul 2024 15:48:25 +0200 Subject: Begin implementing kth kattis aes, just without the aes part --- kattis-kth/aes/src/main.zig | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 kattis-kth/aes/src/main.zig (limited to 'kattis-kth/aes/src/main.zig') diff --git a/kattis-kth/aes/src/main.zig b/kattis-kth/aes/src/main.zig new file mode 100644 index 0000000..cec264f --- /dev/null +++ b/kattis-kth/aes/src/main.zig @@ -0,0 +1,22 @@ +const std = @import("std"); + +pub fn main() !void { + const stdin = std.io.getStdIn().reader().any(); + const stdout = std.io.getStdOut().writer().any(); + + const key = try stdin.readBytesNoEof(16); + const aes = std.crypto.core.aes.Aes128.initEnc(key); + + var input: [1024 * 16]u8 = undefined; + while (true) { + const unalignedLen = try stdin.read(&input); + if (unalignedLen == 0) break; + const len = std.mem.alignBackward(usize, unalignedLen, 16); + std.debug.assert(len == unalignedLen); + var i: usize = 0; + while (i < len) : (i += 16) { + aes.encrypt(input[i..][0..16], input[i..][0..16]); + } + try stdout.writeAll(input[0..len]); + } +} -- cgit v1.2.3