def get_shared_secret(priv, pub):
pub_point = pub.point()<EOL>priv_point = int(repr(priv), <NUM_LIT:16>)<EOL>res = pub_point * priv_point<EOL>res_hex = "<STR_LIT>" % res.x()<EOL>res_hex = "<STR_LIT:0>" * (<NUM_LIT:64> - len(res_hex)) + res_hex<EOL>return res_hex<EOL>
Derive the share secret between ``priv`` and ``pub``

        :param `Base58` priv: Private Key
        :param `Base58` pub: Public Key
        :return: Shared secret
        :rtype: hex

        The shared secret is generated such that::

            Pub(Alice) * Priv(Bob) = Pub(Bob) * Priv(Alice)