Commit Graph

45 Commits

Author SHA1 Message Date
Luis Rascao ffde489e53 Fix rekey, improve coverage
ChaChaPoly key is expected to be 256 bits long. It's safe to disregard
the MAC portion.
2021-04-27 15:40:58 +01:00
Hans Svensson 83fa0d5a00 Bump version to 1.1.0 2020-09-24 22:21:47 +02:00
Marc Nijdam a3e803fc1a Upgrade enacl to 1.1.1 2020-09-22 17:44:54 -06:00
Hans Svensson 1e6ee6703f More improved typespecs 2019-01-29 09:08:17 +01:00
Hans Svensson 7c7ad54a6a Improve type specs 2019-01-28 15:05:21 +01:00
Hans Svensson c06bbae07d Bump version to 1.0.1 2018-12-21 13:27:23 +01:00
Hans Svensson 1ac27a035a Make read_message/read_token more robust 2018-12-21 09:37:52 +01:00
Hans Svensson dc60c46fff Prepare for version 1.0.0 2018-10-09 16:15:24 +02:00
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 2f220d599c Introduce generic enoise:handshake and implement tcp in terms of it 2018-03-09 10:26:49 +01:00
Hans Svensson 8d47669d68 More documentation and some cleanup 2018-03-08 12:07:00 +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 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 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 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