anchor.diff:                                engine_method_pkey_meths | engine_method_pkey_asn1_meths | 
                                 engine_method_ec.
   
  +-type engine_ref() :: term().
  +
   -spec engine_get_all_methods() ->
       [engine_method_type()].
   engine_get_all_methods() ->
  
positive.code:          engine_unload/1,
           engine_list/0
          ]).
  
  
  %% Private. For tests.
  
negative.code:     end.
  
  
  
  -type key_id()   :: string() | binary() .
  -type password() :: string() | binary() .
  
  -type engine_key_ref() :: #{engine :=   engine_ref(),
                              key_id :=   key_id(),
                              password => password(),
                              term() => term() 
                             }.
  
  -type pk_algs() :: rsa | ecdsa | dss .
  -type pk_key()  :: engine_key_ref() | [integer() | binary()] .
  -type pk_opt()  :: list() | rsa_padding() .
  
  -spec public_encrypt(pk_algs(),  binary(), pk_key(), pk_opt()) -> binary().
  