def sign_message(message, private_key, public_key=None):
if public_key is None:<EOL><INDENT>public_key = private_to_public_key(private_key)<EOL><DEDENT>return ed25519_blake2.signature_unsafe(message, private_key, public_key)<EOL>
Signs a `message` using `private_key` and `public_key`

.. warning:: Not safe to use with secret keys or secret data. See module
             docstring.  This function should be used for testing only.

:param message: the message to sign
:type message: bytes

:param private_key: private key used to sign message
:type private_key: bytes

:param public_key: public key used to sign message
:type public_key: bytes

:return: the signature of the signed message
:rtype: bytes