'Blind a message to prevent certain side-channel attacks.
:Parameter M: The message to blind.
:Type M: byte string or long
:Parameter B: Blinding factor.
:Type B: byte string or long
:Return: A byte string if M was so. A long otherwise.'

def blind(self, M, B):

    wasString = 0
    if isinstance(M, types.StringType):
        M = bytes_to_long(M)
        wasString = 1
    if isinstance(B, types.StringType):
        B = bytes_to_long(B)
    blindedmessage = self._blind(M, B)
    if wasString:
        return long_to_bytes(blindedmessage)
    else:
        return blindedmessage
