Derive a Twisted Edwards public key from given Montgomery public key.

        :param mont_pub: A bytes-like object encoding the public key with length
            MONT_PUB_KEY_SIZE.
        :returns: A bytes-like object encoding the public key with length ED_PUB_KEY_SIZE.

def mont_pub_to_ed_pub(cls, mont_pub):
        """
        Derive a Twisted Edwards public key from given Montgomery public key.

        :param mont_pub: A bytes-like object encoding the public key with length
            MONT_PUB_KEY_SIZE.
        :returns: A bytes-like object encoding the public key with length ED_PUB_KEY_SIZE.
        """

        if not isinstance(mont_pub, bytes):
            raise TypeError("Wrong type passed for the mont_pub parameter.")

        if len(mont_pub) != cls.MONT_PUB_KEY_SIZE:
            raise ValueError("Invalid value passed for the mont_pub parameter.")

        return bytes(cls._mont_pub_to_ed_pub(bytearray(mont_pub)))