BGMVWC2JFYYBR6ESR2JJSBOYEW5HNL5F33ME7MFR74KF3HWWM72AC #!/usr/bin/env escriptmain(_) ->TestProtocol = enoise_protocol:from_name("Noise_XK_25519_ChaChaPoly_Blake2b"),ServerPrivKey =<<200, 81, 196, 192, 228, 196, 182, 200, 181, 83, 169, 255, 242, 54, 99, 113, 8, 49, 129,92, 225, 220, 99, 50, 93, 96, 253, 250, 116, 196, 137, 103>>,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>>,Opts = [{noise, TestProtocol},{s, enoise_keypair:new(dh25519, ServerPrivKey, ServerPubKey)},{prologue, <<0, 8, 0, 0, 3>>}],{ok, LSock} = gen_tcp:listen(7891, [{reuseaddr, true}, binary, {active, false}]),spawn(fun() -> accept_loop(LSock, Opts) end),timer:sleep(infinity).accept_loop(LSock, Opts) ->case gen_tcp:accept(LSock, 5000) of{ok, TcpSock} ->io:format("Accepted connection from ...~n"),%, [peer_addr(TcpSock)]),spawn(fun() -> handle_connection(TcpSock, Opts) end),accept_loop(LSock, Opts);{error, timeout} ->accept_loop(LSock, Opts);{error, closed} ->io:format("Listener socket closed~n");{error, Reason} ->io:format("Accept failed: ~p~n", [Reason])end.handle_connection(TcpSock, Opts) ->io:format("socket accepted~n"),receive{tcp, TcpSock, <<0, 8, 0, 0, 3>>} -> okafter 5000 -> error(timeout)end,io:format("got preample~n"),{ok, EConn, EHs} = enoise:accept(TcpSock, Opts),io:format("got handshake!~p~n", [EHs]),{EConn1, Msg} = enoise:recv(EConn),EConn2 = enoise:send(EConn1, Msg),enoise:close(EConn2).
#!/usr/bin/env escriptmain(_) ->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,[{active, once},binary,{reuseaddr, true}],1000),gen_tcp:send(TcpSock, <<0, 8, 0, 0, 3>>),io:format("dialed socket~n"),Opts = [{noise, TestProtocol},{s, enoise_keypair:new(dh25519, ClientPrivKey, ClientPubKey)},{rs, enoise_keypair:new(dh25519, ServerPubKey)},{prologue, <<0, 8, 0, 0, 3>>}],{ok, EConn, EHs} = enoise:connect(TcpSock, Opts),io:format("enoise connected~p~n", [EHs]),ok = enoise:send(EConn, <<"ok\n">>),receive{noise, EConn, <<"ok\n">>} -> okafter 1000 -> error(timeout)end,{ok, <<"ok\n">>} = enoise:recv(EConn, 3, 1000),enoise:close(EConn).