code: def sign(self, message, encoder=encoding.RawEncoder):
          
          raw_signed = libnacl.crypto_sign(message, self._signing_key)
  
          signature = encoder.encode(raw_signed[:libnacl.crypto_sign_BYTES])
          message = encoder.encode(raw_signed[libnacl.crypto_sign_BYTES:])
          signed = encoder.encode(raw_signed)
  
          return SignedMessage._from_parts(signature, message, signed)
docs: Sign a message using this key.
  
          :param message: [:class:`bytes`] The data to be signed.
          :param encoder: A class that is used to encode the signed message.
          :rtype: :class:`~SignedMessage`