keygen.py: relocate libsecp256k1 availability test to class
This commit is contained in:
parent
076cec7495
commit
79652a78a6
2 changed files with 14 additions and 10 deletions
|
|
@ -204,14 +204,12 @@ def KeyGenerator(proto,pubkey_type,backend=None,silent=False):
|
|||
|
||||
backend_id = pubkey_type_cls.backends[int(backend) - 1 if backend else 0]
|
||||
|
||||
if backend_id == 'libsecp256k1':
|
||||
if not pubkey_type_cls.libsecp256k1.test_avail(silent=silent):
|
||||
backend_id = 'python-ecdsa'
|
||||
if not backend:
|
||||
from .util import qmsg
|
||||
qmsg('Using (slow) native Python ECDSA library for public key generation')
|
||||
backend_clsname = getattr(
|
||||
pubkey_type_cls,
|
||||
backend_id.replace('-','_')
|
||||
).test_avail(silent=silent)
|
||||
|
||||
return getattr(pubkey_type_cls,backend_id.replace('-','_'))()
|
||||
return getattr(pubkey_type_cls,backend_clsname)()
|
||||
|
||||
def AddrGenerator(proto,addr_type):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -43,6 +43,10 @@ class keygen_base:
|
|||
def to_viewkey(self,privkey):
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
def test_avail(cls,silent=False):
|
||||
return cls.__name__
|
||||
|
||||
class keygen_backend:
|
||||
|
||||
class std:
|
||||
|
|
@ -67,12 +71,14 @@ class keygen_backend:
|
|||
from .util import die
|
||||
die( 'ExtensionModuleError',
|
||||
'Unable to execute priv2pub() from secp256k1 extension module' )
|
||||
return True
|
||||
return cls.__name__
|
||||
except Exception as e:
|
||||
if not silent:
|
||||
from .util import ymsg
|
||||
ymsg(str(e))
|
||||
return False
|
||||
from .util import qmsg
|
||||
qmsg('Using (slow) native Python ECDSA library for public key generation')
|
||||
return 'python_ecdsa'
|
||||
|
||||
class python_ecdsa(keygen_base):
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue