41 Commits

Author SHA1 Message Date
Hans Svensson
4c436e395d Don't trust inet:getopts to succeed 2018-05-16 10:42:00 +02:00
Hans Svensson
7347906f29 Monitor owner process and handle normal termination 2018-05-08 16:00:10 +02:00
Hans Svensson
0436704327 Report decrypt error upstream (instead of crashing) 2018-05-08 16:00:10 +02:00
Hans Svensson
738b123164 Report send result to caller 2018-05-08 16:00:10 +02:00
Hans Svensson
e3baa21bb0 Don't assume send is always ok 2018-04-26 08:38:46 +02:00
Hans Svensson
14b6f4624a Handle error from inet:getopts 2018-04-25 09:40:09 +02:00
Hans Svensson
a024fc4dc9 Handle failed decrypts in handshake 2018-04-25 09:37:26 +02:00
Hans Svensson
a484d14c41 setopts is in inet, not gen_tcp 2018-04-25 09:37:00 +02:00
Hans Svensson
babd0cc11f Pleasing dialyzer 2018-04-25 09:36:38 +02:00
Hans Svensson
9639e08a4f Don't forget to close the gen_server upon tcp_closed 2018-04-18 10:15:46 +02:00
Hans Svensson
fc510c07a1 Handle errors in start_link (tcp_closed) 2018-04-17 09:00:22 +02:00
Hans Svensson
41b8efd201 Use the noise_split_state() type where appropriate 2018-03-15 14:10:59 +01:00
Hans Svensson
6d793b7118 On successful accept/connect - also return the final Handshake state 2018-03-15 14:03:41 +01:00
Hans Svensson
d81f973bca More documentation and a more intuitive step_handshake 2018-03-14 10:38:50 +01:00
Hans Svensson
8f3aff4d8b Support {active, true} and {active, once} in gen_tcp-wrapper
In the implemented TCP-wrapper (enoise_connection) we now properly support {active, true}
and {active, once} and switching between them (previously no switching was supported).
2018-03-13 23:22:42 +01:00
Hans Svensson
272dcde689 Add stepwise generic handshake 2018-03-09 13:57:14 +01:00
Hans Svensson
e705df03a4 Disable local client test 2018-03-09 11:06:02 +01:00
Hans Svensson
2f220d599c Introduce generic enoise:handshake and implement tcp in terms of it 2018-03-09 10:26:49 +01:00
Hans Svensson
7805b983b2 Add xref configuration to rebar.config
Skip unused exports - that is expected from a library API…
2018-03-09 09:42:14 +01:00
Hans Svensson
8d47669d68 More documentation and some cleanup 2018-03-08 12:07:00 +01:00
Hans Svensson
9a9d9f47b8 Add docs to gitignore 2018-03-08 11:22:58 +01:00
Hans Svensson
ae1572bf93 Fix a bad type specification 2018-03-08 11:22:19 +01:00
Hans Svensson
a11887393f Refactor keypair into separate module enoise_keypair 2018-03-08 11:22:00 +01:00
Hans Svensson
dd5200d64f Some documentation in enoise.erl 2018-03-08 11:20:24 +01:00
Hans Svensson
14fe5c7e8e Implement enoise_connection:controlling_process/2 2018-03-08 11:19:46 +01:00
Hans Svensson
866b4421b3 Add tests at gen_tcp-level
Move data structure tests to enoise_hs_state_tests
2018-03-07 14:29:37 +01:00
Hans Svensson
955e5c2f32 Handle recv(NoiseSock, 0) correctly
This is a bit subtle since the underlying data is inherently chunked into Noise messages. Need to keep the right data around.
2018-03-07 14:28:56 +01:00
Hans Svensson
02fcf8a86c Don’t do arithmetics with infinity (the atom) 2018-03-07 14:27:46 +01:00
Hans Svensson
4ebb8c8ec9 Make termination reason normal for tcp_closed
To avoid lots of error reports, this is a normal case after all…
2018-03-07 14:27:19 +01:00
Hans Svensson
9f2faa3caf Add enoise_protocol:supported()
It returns a map describing what is supported…
2018-03-07 14:26:23 +01:00
Hans Svensson
4791d15f2e Fix typo bug 2018-03-07 11:23:21 +01:00
Hans Svensson
d81f1eb32e Introduce enoise_connection
This will put the control into a (gen_server) process that wraps the functionality in much the same way as ssl does for gen_tcp, etc.

Some features are still missing (like setopts)
2018-03-06 16:19:25 +01:00
Hans Svensson
0d38f56d6a Add more patterns kk, nx, xn, in, ik, xx, and ix 2018-03-06 10:35:40 +01:00
Hans Svensson
b1d63ad3b9 Refactored + added some test vector support 2018-03-06 10:06:03 +01:00
Hans Svensson
bc8ebc7ec6 Refactor handshake flow control 2018-03-02 15:42:43 +01:00
Hans Svensson
4414c0d7a2 More tests 2018-03-02 14:25:18 +01:00
Hans Svensson
4d2af24250 All crypto and top level in place
Limited support for protocols, virtually no error handling
2018-03-02 14:24:59 +01:00
Hans Svensson
d0723eb247 Symmetric state layer 2018-03-01 21:49:22 +01:00
Hans Svensson
0d563884eb Some tests for cipher_state 2018-03-01 20:37:57 +01:00
Hans Svensson
d78c774b55 The innermost layer cipher_state 2018-03-01 11:44:23 +01:00
Hans Svensson
cb626ab07c Initial project setup 2018-03-01 11:42:59 +01:00