'Calculates \'k\' from data itself, removing the need for strong
random generator and producing deterministic (reproducible) signatures.
See RFC 6979 for more details.'

def sign_digest_deterministic(self, digest, hashfunc=None, sigencode=sigencode_string):

    secexp = self.privkey.secret_multiplier
    k = rfc6979.generate_k(self.curve.generator.order(), secexp, hashfunc, digest)
    return self.sign_digest(digest, sigencode=sigencode, k=k)
