Ulf Wiger
cff15e0bfb
Move monitor of owner into the connection process. Add test case.
2018-08-17 12:53:00 +02:00
Hans Svensson
c3bdb02e53
Don't trust send message to succeed
2018-05-16 10:46:39 +02:00
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