docs: def sign(self, data, entropy=None, hashfunc=None, sigencode=sigencode_string, k=None):
          """
          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.
          """
  
          hashfunc = hashfunc or self.default_hashfunc
          h = hashfunc(data).digest()
          return self.sign_digest(h, entropy, sigencode, k)