<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def checkMessageSignature(self, message):
 """Given a message with a signature, calculate a new signature and return whether it matches the signature in the message. @raises ValueError: if the message has no signature or no signature can be calculated for it. """

        message_sig = message.getArg(OPENID_NS, 'sig')
        if not message_sig:
            raise ValueError("%s has no sig." % (message,))
        calculated_sig = self.getMessageSignature(message)
        return cryptutil.const_eq(calculated_sig, message_sig)