forked from QPQ-AG/enoise
WIP
This commit is contained in:
+17
-13
@@ -4,6 +4,8 @@
|
||||
%%% @doc
|
||||
%%% Interface to the Noise protocol: https://noiseprotocol.org
|
||||
%%%
|
||||
%%% This is a fork of the `enoise' project: https://git.qpq.swiss/QPQ-AG/enoise
|
||||
%%%
|
||||
%%% For convenience there is also an API to use Noise over TCP (i.e. `gen_tcp')
|
||||
%%% and after "upgrading" a `gen_tcp'-socket into a `znoise'-socket it has a
|
||||
%%% similar API as `gen_tcp'.
|
||||
@@ -12,6 +14,7 @@
|
||||
-module(znoise).
|
||||
-vsn("0.1.0").
|
||||
-author("Craig Everett <craigeverett@qpq.swiss>").
|
||||
-author("Hans Svensson <hanssv@gmail.com>").
|
||||
-copyright("QPQ AG <info@qpq.swiss>").
|
||||
-license("ISC").
|
||||
|
||||
@@ -26,25 +29,26 @@
|
||||
send/2,
|
||||
set_active/2]).
|
||||
|
||||
-record(znoise, {pid}).
|
||||
-record(znoise,
|
||||
{pid = none | pid()}).
|
||||
|
||||
-type key() :: binary().
|
||||
-type keypair() :: znoise_keypair:keypair().
|
||||
|
||||
-type options() :: [option()].
|
||||
%% A list of Noise options is a proplist, it *must* contain a value `noise'
|
||||
%% that describes which Noise configuration to use. It is possible to give a
|
||||
%% `prologue' to the protocol. And for the protocol to work, the correct
|
||||
%% that describes which Noise configuration to use. It is possible to give
|
||||
%% a `prologue' to the protocol. And for the protocol to work, the correct
|
||||
%% configuration of pre-defined keys (`s', `e', `rs', `re') should also be
|
||||
%% provided.
|
||||
|
||||
-type option() :: {noise, protocol_option()} %% Required
|
||||
| {e, keypair()} %% Mandatary depending on `noise'
|
||||
| {s, keypair()}
|
||||
| {re, key()}
|
||||
| {rs, key()}
|
||||
-type option() :: {noise, protocol_option()} %% Required
|
||||
| {e, keypair()} %% Mandatary depending on `noise'
|
||||
| {s, keypair()}
|
||||
| {re, key()}
|
||||
| {rs, key()}
|
||||
| {prologue, binary()} %% Optional
|
||||
| {timeout, integer() | infinity}. %% Optional
|
||||
| {timeout, integer() | infinity}. %% Optional
|
||||
|
||||
-type protocol_option() :: znoise_protocol:protocol()
|
||||
| string()
|
||||
@@ -186,17 +190,17 @@ close(#znoise{ pid = Pid }) ->
|
||||
znoise_tcp:close(Pid).
|
||||
|
||||
|
||||
-spec controlling_process(Socket, Pid) -> Outcome
|
||||
-spec controlling_process(Socket, PID) -> Outcome
|
||||
when Socket :: socket(),
|
||||
Pid :: pid(),
|
||||
PID :: pid(),
|
||||
Outcome :: ok | {error, term()}.
|
||||
%% @doc
|
||||
%% Assigns a new controlling process to the Noise socket. A controlling
|
||||
%% process is the owner of an Noise socket, and receives all messages from the
|
||||
%% socket.
|
||||
|
||||
controlling_process(#znoise{ pid = Pid }, NewPid) ->
|
||||
znoise_tcp:controlling_process(Pid, NewPid).
|
||||
controlling_process(#znoise{pid = PID}, NewPID) ->
|
||||
znoise_tcp:controlling_process(PID, NewPID).
|
||||
|
||||
|
||||
-spec set_active(Socket, Mode) -> Outcome
|
||||
|
||||
Reference in New Issue
Block a user