anchor.diff:  
   -spec compute_key(Type, OthersPublicKey, MyPrivateKey, Params)
                    -> SharedSecret
  -                        when Type :: dh | ecdh | srp,
  +                        when Type :: dh | ecdh | eddh |  srp,
                                SharedSecret :: binary(),
                                OthersPublicKey :: dh_public() | ecdh_public() | srp_public(),
                                MyPrivateKey :: dh_private() | ecdh_private() | {srp_public(),srp_private()},
  
positive.code:                                       | {rsa_opts, RSAopts},
                               Hashs :: [sha1() | sha2() | sha3() | blake2() | ripemd160 | compatibility_only_hash()],
                               Ciphers :: [cipher()],
                               PKs :: [rsa | dss | ecdsa | dh | ecdh | ec_gf2m],
                               Macs :: [hmac | cmac | poly1305],
                               Curves :: [ec_named_curve() | edwards_curve_dh() | edwards_curve_ed()],
                               RSAopts :: [rsa_sign_verify_opt() | rsa_opt()] .
  
negative.code:                           UserPubBin, Prime));
  
  compute_key(ecdh, Others, My, Curve) when Curve == x448 ;
                                            Curve == x25519 ->
      evp_compute_key_nif(Curve, ensure_int_as_bin(Others), ensure_int_as_bin(My));
  
  compute_key(eddh, Others, My, Curve) when Curve == x448 ;
                                            Curve == x25519 ->
      evp_compute_key_nif(Curve, ensure_int_as_bin(Others), ensure_int_as_bin(My));
  
  