mirror of
https://github.com/vacp2p/mix.git
synced 2026-01-09 21:18:01 -05:00
Add SphinxPacket protobufs
This commit is contained in:
29
src/sphinx.proto3
Normal file
29
src/sphinx.proto3
Normal 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
35
src/sphinx_pb.nim
Normal 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)
|
||||
Reference in New Issue
Block a user