Add SphinxPacket protobufs

This commit is contained in:
akshaya
2024-08-05 09:14:29 -04:00
parent be1a665d56
commit 3eaa3c204e
2 changed files with 64 additions and 0 deletions

29
src/sphinx.proto3 Normal file
View File

@@ -0,0 +1,29 @@
syntax = "proto3";
message SphinxPacket {
Header Hdr = 1;
bytes Payload = 2;
}
message Header {
bytes Alpha = 1;
bytes Beta = 2;
bytes Gamma = 3;
}
message Hop {
bytes MultiAddress = 1;
}
message RoutingInfo {
Hop Addr = 1;
bytes Delay = 2;
bytes Gamma = 3;
bytes Beta = 4;
}
message HeaderInitials {
bytes Alpha = 1;
bytes Secret = 2;
bytes Blinder = 3;
}

35
src/sphinx_pb.nim Normal file
View File

@@ -0,0 +1,35 @@
import protobuf_serialization/proto_parser
import protobuf_serialization
# Generate Nim types from the .proto file
import_proto3 "sphinx.proto3"
proc serialize*(packet: SphinxPacket): seq[byte] =
return Protobuf.encode(packet)
proc deserialize*(encoded: seq[byte]): SphinxPacket =
return Protobuf.decode(encoded, SphinxPacket)
proc serializeHeader*(header: Header): seq[byte] =
return Protobuf.encode(header)
proc deserializeHeader*(encoded: seq[byte]): Header =
return Protobuf.decode(encoded, Header)
proc serializeHop*(hop: Hop): seq[byte] =
return Protobuf.encode(hop)
proc deserializeHop*(encoded: seq[byte]): Hop =
return Protobuf.decode(encoded, Hop)
proc serializeRoutingInfo*(routingInfo: RoutingInfo): seq[byte] =
return Protobuf.encode(routingInfo)
proc deserializeRoutingInfo*(encoded: seq[byte]): RoutingInfo =
return Protobuf.decode(encoded, RoutingInfo)
proc serializeHeaderInitials*(headerInitials: HeaderInitials): seq[byte] =
return Protobuf.encode(headerInitials)
proc deserializeHeaderInitials*(encoded: seq[byte]): HeaderInitials =
return Protobuf.decode(encoded, HeaderInitials)