Fixed a bug in the build file, fixed functions signature for aes and ed25519, made visibility changes in packet and made the enums needed for destination
This commit is contained in:
parent
693d7cfe51
commit
b67ae9ec59
5 changed files with 67 additions and 17 deletions
|
|
@ -23,7 +23,7 @@ pub fn build(b: *std.Build) void {
|
|||
// Configuration
|
||||
.target = b.standardTargetOptions(.{}),
|
||||
.optimize = b.standardOptimizeOption(.{}),
|
||||
.linkage = if (opt_shared) .static else .dynamic,
|
||||
.linkage = if (opt_shared) .dynamic else .static,
|
||||
.test_step = opt_test
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,18 +4,18 @@ pub const CBC256_Implementation = struct {
|
|||
pub const KEY_SIZE = 32;
|
||||
|
||||
// NOTE: data should be padded to make its length be a multiple of BLOCK_SIZE
|
||||
encypt: *const fn (key: *const [KEY_SIZE]u8, iv: *const [BLOCK_SIZE]u8, data: *const []u8, ) void,
|
||||
decrypt: *const fn (key: *const [KEY_SIZE]u8, iv: *const [BLOCK_SIZE]u8, data: *const []u8, ) void,
|
||||
encypt: *const fn (key: *const [KEY_SIZE]u8, iv: *const [BLOCK_SIZE]u8, data: *const []u8) void,
|
||||
decrypt: *const fn (key: *const [KEY_SIZE]u8, iv: *const [BLOCK_SIZE]u8, data: *const []u8) void,
|
||||
};
|
||||
|
||||
// TODO
|
||||
pub const CBC265_DefaultImplementation = struct {
|
||||
pub fn encrypt( key: *const [32]u8, iv: *const [16]u8, data: *const []u8 ) void {
|
||||
pub fn encrypt(key: *const [32]u8, iv: *const [16]u8, data: *const []u8) !void {
|
||||
_ = key;
|
||||
_ = iv;
|
||||
_ = data;
|
||||
}
|
||||
pub fn decrypt( key: *const [32]u8, iv: *const [16]u8, data: *const []u8 ) void {
|
||||
pub fn decrypt(key: *const [32]u8, iv: *const [16]u8, data: *const []u8) !void {
|
||||
_ = key;
|
||||
_ = iv;
|
||||
_ = data;
|
||||
|
|
|
|||
|
|
@ -1,19 +1,27 @@
|
|||
pub const Implementation = struct {
|
||||
|
||||
pub const KEY_SIZE = 32;
|
||||
pub const SIGNATURE_SIZE = 64;
|
||||
|
||||
generateKey: *const fn (privkey_buffer: *[KEY_SIZE]u8) void,
|
||||
sign: *const fn (key: *const [KEY_SIZE]u8, data: *const []const u8, signature_out: *const [SIGNATURE_SIZE]u8) void,
|
||||
verify: *const fn (key: *const [KEY_SIZE]u8, data: *const []const u8, signature: *const [SIGNATURE_SIZE]u8) void,
|
||||
};
|
||||
|
||||
// TODO
|
||||
pub const defaultImplementation = struct {
|
||||
fn sign(key: *const [32]u8, data: *const []const u8, signature_out: *const [64]u8) void {
|
||||
|
||||
pub fn generateKeys(privkey_buffer: *[32]u8) !void {
|
||||
_ = privkey_buffer;
|
||||
}
|
||||
|
||||
pub fn sign(key: *const [32]u8, data: *const []const u8, signature_out: *const [64]u8) !void {
|
||||
_ = key;
|
||||
_ = data;
|
||||
_ = signature_out;
|
||||
|
||||
}
|
||||
fn verify(signature: *const [64]u8, data: *const []const u8) void {
|
||||
|
||||
pub fn verify(signature: *const [64]u8, data: *const []const u8) !void {
|
||||
_ = signature;
|
||||
_ = data;
|
||||
}
|
||||
|
|
|
|||
42
src/destination.zig
Normal file
42
src/destination.zig
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
///////////////// Constants
|
||||
//
|
||||
|
||||
///////////////// Enums
|
||||
//
|
||||
|
||||
pub const Type = enum(u2) {
|
||||
single = 0x00,
|
||||
group = 0x01,
|
||||
plain = 0x02,
|
||||
link = 0x03,
|
||||
};
|
||||
|
||||
pub const ProofStrategy = enum(u2) {
|
||||
prove_none = 0x21,
|
||||
prove_app = 0x22,
|
||||
prove_all = 0x23,
|
||||
};
|
||||
|
||||
pub const RequestPolicy = enum(u2) {
|
||||
allow_none = 0x00,
|
||||
allow_all = 0x01,
|
||||
allow_list = 0x02,
|
||||
};
|
||||
|
||||
pub const Direction = enum(u2) {
|
||||
in = 0x11,
|
||||
out = 0x12,
|
||||
};
|
||||
|
||||
///////////////// Functions
|
||||
//
|
||||
|
||||
//////// Helper functions
|
||||
//
|
||||
|
||||
//////// Public functions
|
||||
//
|
||||
|
||||
///////////////// Tests
|
||||
//
|
||||
|
||||
|
|
@ -7,39 +7,39 @@ const ADDRESS_SIZE = 16;
|
|||
///////////////// Enums
|
||||
//
|
||||
|
||||
const IfacFlag = enum(u1) {
|
||||
pub const IfacFlag = enum(u1) {
|
||||
open = 0, // Packet for publically accessible interface
|
||||
authenticated = 1, // Interface authentication is included in packet
|
||||
};
|
||||
const HeaderType = enum(u1) {
|
||||
pub const HeaderType = enum(u1) {
|
||||
type1 = 0, // One address field
|
||||
type2 = 1, // Two address fields
|
||||
};
|
||||
const ContextFlag = enum(u1) {
|
||||
pub const ContextFlag = enum(u1) {
|
||||
// Meaning depends on packet context
|
||||
unset = 0,
|
||||
set = 1,
|
||||
};
|
||||
const PropagationType = enum(u1) {
|
||||
pub const PropagationType = enum(u1) {
|
||||
broadcast = 0,
|
||||
transport = 1
|
||||
};
|
||||
|
||||
const DestinationType = enum(u2) {
|
||||
pub const DestinationType = enum(u2) {
|
||||
single = 0b0,
|
||||
group = 0b01,
|
||||
plain = 0b10,
|
||||
link = 0b11,
|
||||
};
|
||||
|
||||
const PacketType = enum(u2) {
|
||||
pub const PacketType = enum(u2) {
|
||||
data = 0b0,
|
||||
announce = 0b01,
|
||||
link_request = 0b10,
|
||||
proof = 0b11,
|
||||
};
|
||||
|
||||
const PacketContext = enum(u8) {
|
||||
pub const PacketContext = enum(u8) {
|
||||
none = 0x00, // Generic data packet
|
||||
resource = 0x01, // Packet is part of a resource
|
||||
resource_adv = 0x02, // Packet is a resource advertisement
|
||||
|
|
@ -66,7 +66,7 @@ const PacketContext = enum(u8) {
|
|||
///////////////// Structs
|
||||
//
|
||||
|
||||
const PacketHeader = packed struct {
|
||||
pub const PacketHeader = packed struct {
|
||||
ifac: IfacFlag,
|
||||
header: HeaderType,
|
||||
context: ContextFlag,
|
||||
|
|
@ -76,7 +76,7 @@ const PacketHeader = packed struct {
|
|||
hops: u8,
|
||||
};
|
||||
|
||||
const Packet = struct {
|
||||
pub const Packet = struct {
|
||||
header: PacketHeader,
|
||||
address1: [ADDRESS_SIZE]u8,
|
||||
address2: [ADDRESS_SIZE]u8,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue