anchor.diff:  
   %% DHParameters = [P (Prime)= mpint(), G(Generator) = mpint()]
   %% MyPrivKey, OthersPublicKey = mpint() 
  +-spec dh_compute_key(binary(), binary(), [binary()]) -> binary().
  +
   dh_compute_key(OthersPublicKey, MyPrivateKey, DHParameters) ->
       case dh_compute_key_nif(OthersPublicKey,MyPrivateKey,DHParameters) of
   	error -> erlang:error(computation_failed, [OthersPublicKey,MyPrivateKey,DHParameters]);
  
positive.code: %%
  %%  SHA_MAC
  %%
  sha_mac(Key, Data) ->
      sha_mac_n(Key,Data,20).
  
  
negative.code: %%
  %%  rsa_public_encrypt
  %%  rsa_private_decrypt
  -type rsa_padding() :: 'rsa_pkcs1_padding' | 'rsa_pkcs1_oaep_padding' | 'rsa_no_padding'.
  
  -spec rsa_public_encrypt(binary(), [binary()], rsa_padding()) ->
  				binary().
  -spec rsa_public_decrypt(binary(), [binary()], rsa_padding()) ->
  				binary().
  -spec rsa_private_encrypt(binary(), [binary()], rsa_padding()) ->
  				binary().
  -spec rsa_private_decrypt(binary(), [binary()], rsa_padding()) ->
  				binary().
  
  %% Binary, Key = [E,N]
  rsa_public_encrypt(BinMesg, Key, Padding) ->
  