'hashfunc= should behave like hashlib.sha1 . The output length of the
hash (in bytes) must not be longer than the length of the curve order
(rounded up to the nearest byte), so using SHA256 with nist256p is
ok, but SHA256 with nist192p is not. (In the 2**-96ish unlikely event
of a hash output larger than the curve order, the hash will
effectively be wrapped mod n).
Use hashfunc=hashlib.sha1 to match openssl\'s -ecdsa-with-SHA1 mode,
or hashfunc=hashlib.sha256 for openssl-1.0.0\'s -ecdsa-with-SHA256.'

def sign(self, data, entropy=None, hashfunc=None, sigencode=sigencode_string, k=None):

    hashfunc = (hashfunc or self.default_hashfunc)
    h = hashfunc(data).digest()
    return self.sign_digest(h, entropy, sigencode, k)
