First drafts of the crypto engine
This commit is contained in:
parent
da24a10867
commit
cd83af4ef9
9 changed files with 78 additions and 0 deletions
36
src/crypto.zig
Normal file
36
src/crypto.zig
Normal 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
41
src/crypto/aes.zig
Normal 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
0
src/crypto/ed25519.zig
Normal file
0
src/crypto/hkdf.zig
Normal file
0
src/crypto/hkdf.zig
Normal file
0
src/crypto/hmac.zig
Normal file
0
src/crypto/hmac.zig
Normal file
0
src/crypto/sha256.zig
Normal file
0
src/crypto/sha256.zig
Normal file
0
src/crypto/sha512.zig
Normal file
0
src/crypto/sha512.zig
Normal file
0
src/crypto/x25519.zig
Normal file
0
src/crypto/x25519.zig
Normal file
|
|
@ -1 +1,2 @@
|
|||
pub const packet = @import("packet.zig");
|
||||
// pub const crypto = @import("crypto.zig");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue