'Verify that signature is a valid signature of hash.
Return True if the signature is valid.'

def verifies(self, hash, signature):

    G = self.generator
    n = G.order()
    r = signature.r
    s = signature.s
    if ((r < 1) or (r > (n - 1))):
        return False
    if ((s < 1) or (s > (n - 1))):
        return False
    c = numbertheory.inverse_mod(s, n)
    u1 = ((hash * c) % n)
    u2 = ((r * c) % n)
    xy = ((u1 * G) + (u2 * self.point))
    v = (xy.x() % n)
    return (v == r)
