Optimize calculations

pynacl
Michał Sałaban 2 years ago
parent 9c594e0692
commit d3a6a8f470

@ -1,7 +1,6 @@
import binascii
import six
import nacl.bindings
import six
def bit(h, i):
@ -21,12 +20,13 @@ def decodeint(s):
edwards_add = nacl.bindings.crypto_core_ed25519_add
inv = nacl.bindings.crypto_core_ed25519_scalar_invert
scalar_add = nacl.bindings.crypto_core_ed25519_scalar_add
scalarmult_B = nacl.bindings.crypto_scalarmult_ed25519_base_noclamp
scalarmult = nacl.bindings.crypto_scalarmult_ed25519_noclamp
def scalar_reduce(v):
return nacl.bindings.crypto_core_ed25519_scalar_reduce(v + 32 * b"\0")
return nacl.bindings.crypto_core_ed25519_scalar_reduce(v + (64 - len(v)) * b"\0")
def public_from_secret_hex(hk):

@ -142,11 +142,14 @@ class Transaction(object):
def _scan_pubkeys(svk, psk, stealth_address, amount, encamount):
for keyidx, tx_key in enumerate(self.pubkeys):
# precompute
svk_2 = ed25519.scalar_add(svk, svk)
svk_4 = ed25519.scalar_add(svk_2, svk_2)
svk_8 = ed25519.scalar_add(svk_4, svk_4)
#
hsdata = b"".join(
[
ed25519.scalarmult(
ed25519.encodeint(ed25519.decodeint(svk) * 8), tx_key
),
ed25519.scalarmult(svk_8, tx_key),
varint.encode(idx),
]
)

Loading…
Cancel
Save