ecc.py: _MyVerifyingKey.from_signature is raising low level exception

Traceback (most recent call last):
  File "...\electrum\gui\qt\util.py", line 645, in run
    result = task.task()
  File "...\electrum\lib\wallet.py", line 1500, in sign_transaction
    k.sign_transaction(tx, password)
  File "...\electrum\plugins\keepkey\keepkey.py", line 67, in sign_transaction
    self.plugin.sign_transaction(self, tx, prev_tx, xpub_path)
  File "...\electrum\plugins\keepkey\keepkey.py", line 263, in sign_transaction
    tx.update_signatures(signatures)
  File "...\electrum\lib\transaction.py", line 667, in update_signatures
    public_key = ecc.ECPubkey.from_sig_string(sig_string, recid, pre_hash)
  File "...\electrum\lib\ecc.py", line 180, in from_sig_string
    ecdsa_verifying_key = _MyVerifyingKey.from_signature(sig_string, recid, msg_hash, curve=SECP256k1)
  File "...\electrum\lib\ecc.py", line 152, in from_signature
    Q = inv_r * ( s * R + minus_e * G )
  File "...\Python\Python36-32\lib\site-packages\ecdsa\ellipticcurve.py", line 143, in __rmul__
    return self * other
  File "...\electrum\lib\ecc_fast.py", line 120, in mul
    public_pair_bytes = b'\4' + self.x().to_bytes(32, byteorder="big") + self.y().to_bytes(32, byteorder="big")
OverflowError: int too big to convert
This commit is contained in:
SomberNight 2018-06-14 20:14:38 +02:00
parent 0438bbc2c2
commit 7ebff5616e
No known key found for this signature in database
GPG key ID: B33B5F232C6271E9

View file

@ -149,7 +149,10 @@ class _MyVerifyingKey(ecdsa.VerifyingKey):
minus_e = -e % order minus_e = -e % order
# 1.6 compute Q = r^-1 (sR - eG) # 1.6 compute Q = r^-1 (sR - eG)
inv_r = numbertheory.inverse_mod(r,order) inv_r = numbertheory.inverse_mod(r,order)
try:
Q = inv_r * ( s * R + minus_e * G ) Q = inv_r * ( s * R + minus_e * G )
except:
raise InvalidECPointException()
return klass.from_public_point( Q, curve ) return klass.from_public_point( Q, curve )