anchor.diff:  %%% @doc
   %%%     Key manager for AE node
   %%%     * it will open keys that it finds using sys.config
  -%%%     * generating new/1 or setting set/3 keys will fail when another keys are present
   %%%     * delete/0 removes files from the filesystem and from the state (DANGER!)
   %%% @end
   %%% Created : 28 Aug 2017
  
positive.code: -spec check_key_pair() -> boolean().
  check_key_pair() ->
      gen_server:call(?MODULE, check_key_pair).
  
  -spec new(password()) -> {Priv :: binary(), Pub :: binary()} | error.
  new(Password) ->
      gen_server:call(?MODULE, {new, Password}).
  
  -spec set(password(), binary(), binary()) -> ok | error.
  set(Password, Priv, Pub) ->
      gen_server:call(?MODULE, {set, Password, Priv, Pub}).
  
  -spec delete() -> ok | error.
  delete() ->
  
negative.code: -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
           terminate/2, code_change/3]).
  
  -export([sign/1, pubkey/0, delete/0,
           wait_for_pubkey/0]).
  -export([verify/2]).
  -export([check_key_pair/0]).
  