用uninet-address实现的方法加密。
公钥即地址,私钥即密钥。
格式[type: PacketType, data ...]。
const enum PacketType {
Servers,
GetServers,
RoutingTable,
GetRoutingTable,
ProxyMe,
Packet,
}提供一些节点。可以在任何时候发出任意数量的。
为[t: PacketType.Servers, data]。
data为低层地址的数组。
获取一些节点。
为[t: PacketType.GetServers]。
提供一个路由表。可以在任何时候发出任意数量的。
为[t: PacketType.RoutingTable, data]。
data为一个object,键为地址,值为低层地址的数组。
为[protocol: string, low_address: string]
protocol可以是ws(WebSocket)或wss(WebSocket)。
获取路由表。
为[t: PacketType.GetRoutingTable]。
要求WebSocket服务器为自己提供代理。
由WebSocket客户端发出。
为[t: PacketType.ProxyMe, address: string]。
address为地址。
包。
为[t: PacketType.Packet, address: string, rawsender: string, rawdata: string]。
address为接收者的地址。
rawdata为base64编码的加密的数据。
rawsender为base64编码的加密的发送者的地址。
- 用
发送者的密钥加密。 - 用
接收者的地址加密。
- 用
接收者的密钥解密。 - 用
发送者的地址解密。
- 用
接收者的地址加密。 - 用
接收者的密钥解密。