本文整理汇总了Python中ecdsa.SigningKey.from_secret_exponent方法的典型用法代码示例。如果您正苦于以下问题:Python SigningKey.from_secret_exponent方法的具体用法?Python SigningKey.from_secret_exponent怎么用?Python SigningKey.from_secret_exponent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ecdsa.SigningKey
的用法示例。
在下文中一共展示了SigningKey.from_secret_exponent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: recover_nonce_reuse
# 需要导入模块: from ecdsa import SigningKey [as 别名]
# 或者: from ecdsa.SigningKey import from_secret_exponent [as 别名]
def recover_nonce_reuse(self, other):
sig2 = other.sig # rename it
h2 = other.h # rename it
# precalculate static values
z = self.h - h2
r_inv = inverse_mod(self.sig.r, self.n)
#
# try all candidates
#
for candidate in (self.sig.s - sig2.s,
self.sig.s + sig2.s,
-self.sig.s - sig2.s,
-self.sig.s + sig2.s):
k = (z * inverse_mod(candidate, self.n)) % self.n
d = (((self.sig.s * k - self.h) % self.n) * r_inv) % self.n
signingkey = SigningKey.from_secret_exponent(d, curve=self.curve)
if signingkey.get_verifying_key().pubkey.verifies(self.h, self.sig):
self.signingkey = signingkey
self.k = k
self.x = d
return self
assert False # could not recover private key
示例2: __init__
# 需要导入模块: from ecdsa import SigningKey [as 别名]
# 或者: from ecdsa.SigningKey import from_secret_exponent [as 别名]
def __init__(self, wif=None, secret_exponent=None):
"""With no parameters a random key is created
Parameters
----------
wif : str, optional
the key in WIF of WIFC format (default None)
secret_exponent : int, optional
used to create a specific key deterministically (default None)
"""
if not secret_exponent and not wif:
self.key = SigningKey.generate(curve=SECP256k1)
else:
if wif:
self._from_wif(wif)
elif secret_exponent:
self.key = SigningKey.from_secret_exponent(secret_exponent,
curve=SECP256k1)
示例3: __init__
# 需要导入模块: from ecdsa import SigningKey [as 别名]
# 或者: from ecdsa.SigningKey import from_secret_exponent [as 别名]
def __init__(self, secret_exponent, network=BitcoinMainNet,
*args, **kwargs):
if not isinstance(secret_exponent, six.integer_types):
raise ValueError("secret_exponent must be a long")
super(PrivateKey, self).__init__(network=network, *args, **kwargs)
self._private_key = SigningKey.from_secret_exponent(
secret_exponent, curve=SECP256k1)
示例4: __init__
# 需要导入模块: from ecdsa import SigningKey [as 别名]
# 或者: from ecdsa.SigningKey import from_secret_exponent [as 别名]
def __init__(self, name, privkey=None):
"""
A wallet object is initialized by a private key.
"""
self.name = name
if privkey is None:
secexp = randrange_from_seed__trytryagain(os.urandom(SECP256k1.baselen), SECP256k1.order)
self.privkey = SigningKey.from_secret_exponent(secexp, curve=SECP256k1)
else:
self.privkey = privkey
self.pubkey = self.privkey.get_verifying_key()
self.address = tools.make_address([self.pubkey], 1)