First drafts of the crypto engine

This commit is contained in:
Gu://em_ 2026-06-13 23:20:25 +02:00
parent da24a10867
commit cd83af4ef9
9 changed files with 78 additions and 0 deletions

36
src/crypto.zig Normal file
View file

@ -0,0 +1,36 @@
// WARNING NOT FUNCTIONAL !!!
// This is just a draft
// TODO
///////////////// Imports
//
const AES = @import("crypto/aes.zig");
///////////////// Public functions
//
pub fn CryptoEngine(comptime Provider: anytype) type {
return struct {
const Self = @This();
pub const Aes = AES.AesEngine(Provider);
};
}
///////////////// Tests
//
const std = @import("std");
test "AES encryption defaults" {
const crypto = CryptoEngine();
var data = [_]u8{ 1, 2, 3, 4 };
const key = [_]u8{ 1, 2, 3, 4 };
const iv = [_]u8{ 1, 2, 3, 4 };
crypto.Aes.CBC_265.encrypt(&data, &key, &iv);
}

41
src/crypto/aes.zig Normal file
View file

@ -0,0 +1,41 @@
// WARNING NOT FUNCTIONAL !!!
// This is just a draft
// TODO
pub const DefaultEngine = struct {
pub fn encrypt(data: []u8) void {
_ = data;
}
};
pub fn AesEngine(comptime Provider: anytype) type {
_ = Provider;
return struct {
const Self = @This();
pub const CBC_265 = struct {
const key_length = 256;
// Encrypts the data block using AES 256 CBC
pub fn encrypt(data: []u8, key: [key_length]u8, iv: []u8) void {
_ = data;
_ = key;
_ = iv;
}
};
pub const CBC_128 = struct {
const key_length = 128;
// Encrypts the data block using AES 128 CBC
pub fn encrypt(data: []u8, key: [key_length]u8, iv: []u8) void {
_ = data;
_ = key;
_ = iv;
}
};
};
}

0
src/crypto/ed25519.zig Normal file
View file

0
src/crypto/hkdf.zig Normal file
View file

0
src/crypto/hmac.zig Normal file
View file

0
src/crypto/sha256.zig Normal file
View file

0
src/crypto/sha512.zig Normal file
View file

0
src/crypto/x25519.zig Normal file
View file

View file

@ -1 +1,2 @@
pub const packet = @import("packet.zig");
// pub const crypto = @import("crypto.zig");