BF:BFD[
3.2] → [
4.3642:3690]
BF:BFD[
4.3690] → [
4.2154:2154]
B:BD[
4.2154] → [
4.2155:2839]
∅:D[
2.2195] → [
4.2839:2911]
B:BD[
4.2839] → [
4.2839:2911]
∅:D[
2.2213] → [
4.3010:3030]
B:BD[
4.3010] → [
4.3010:3030]
∅:D[
2.2265] → [
4.3076:3225]
B:BD[
4.3076] → [
4.3076:3225]
∅:D[
2.2294] → [
4.3282:3428]
B:BD[
4.3282] → [
4.3282:3428]
∅:D[
2.2585] → [
4.3469:3481]
B:BD[
4.3469] → [
4.3469:3481]
∅:D[
2.2718] → [
4.3555:3564]
B:BD[
4.3555] → [
4.3555:3564]
B:BD[
4.3564] → [
2.2719:2806]
B:BD[
4.3481] → [
2.2586:2718]
B:BD[
4.3428] → [
2.2295:2585]
B:BD[
4.3225] → [
2.2266:2294]
B:BD[
4.3030] → [
2.2214:2265]
B:BD[
4.2911] → [
2.2196:2213]
B:BD[
4.2839] → [
2.2106:2195]
#!/usr/bin/env escript
main(_) ->
TestProtocol = enoise_protocol:from_name("Noise_XK_25519_ChaChaPoly_BLAKE2b"),
ClientPrivKey =
<<64, 168, 119, 119, 151, 194, 94, 141, 86, 245, 144, 220, 78, 53, 243, 231, 168, 216, 66,
199, 49, 148, 202, 117, 98, 40, 61, 109, 170, 37, 133, 122>>,
ClientPubKey =
<<115, 39, 86, 77, 44, 85, 192, 176, 202, 11, 4, 6, 194, 144, 127, 123, 34, 67, 62, 180,
190, 232, 251, 5, 216, 168, 192, 190, 134, 65, 13, 64>>,
ServerPubKey =
<<112, 91, 141, 253, 183, 66, 217, 102, 211, 40, 13, 249, 238, 51, 77, 114, 163, 159, 32, 1,
162, 219, 76, 106, 89, 164, 34, 71, 149, 2, 103, 59>>,
{ok, TcpSock} = gen_tcp:connect(
"localhost",
7891,
1000
),
io:format("dialed socket~n"),
Opts = [
{noise, TestProtocol},
{s, enoise_keypair:new(dh25519, ClientPrivKey, ClientPubKey)},
{prologue, <<0, 8, 0, 0, 3>>}
],
{ok, EConn, EHs} = enoise:connect(TcpSock, Opts),
io:format("enoise connected~p~n", [EHs]),
receive
end,
timer:sleep(100), % Optional: avoid flooding
send_receive_loop(EConn, N - 1).
{noise, EConn, Message} ->
io:format("Received: ~p~n", [Message])
after 3000 ->
error({timeout, N})
LoopCount = 3,
send_receive_loop(EConn, LoopCount),
enoise:close(EConn).
send_receive_loop(_EConn, 0) ->
io:format("Finished loop~n");
send_receive_loop(EConn, N) ->
Message = <<"ok\n">>,
ok = enoise:send(EConn, Message),
io:format("Sent: ~p~n", [Message]),
{rs, ServerPubKey},
ok = gen_tcp:send(TcpSock, <<0, 8, 0, 0, 3>>),
TcpOpts,
TcpOpts = [
{active, true},
binary,
{reuseaddr, true}
],