mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-28 16:01:30 +00:00
fix derive_secret
This commit is contained in:
parent
576a74a48a
commit
b523085fa3
2 changed files with 13 additions and 28 deletions
|
@ -317,31 +317,16 @@ def derive_blinded_pubkey(basepoint, per_commitment_point):
|
||||||
return point_to_ser(k1 + k2)
|
return point_to_ser(k1 + k2)
|
||||||
|
|
||||||
|
|
||||||
def get_per_commitment_secret_from_seed(seed: int, i: int) -> int:
|
def get_per_commitment_secret_from_seed(seed: int, bits: int, i: int) -> int:
|
||||||
"""Generate per commitment secret."""
|
"""Generate per commitment secret."""
|
||||||
|
|
||||||
|
|
||||||
#seed ^= 1
|
|
||||||
#pcs_bytes = seed.to_bytes(byteorder="big", length=32)
|
|
||||||
#print(bh2u(pcs_bytes))
|
|
||||||
#return int.from_bytes(hashlib.sha256(pcs_bytes[::-1]).digest(), byteorder="big")
|
|
||||||
|
|
||||||
#tmp = seed.to_bytes(byteorder="big", length=32)
|
|
||||||
#seed = int.from_bytes(tmp[::-1], byteorder="big")
|
|
||||||
|
|
||||||
per_commitment_secret = seed
|
per_commitment_secret = seed
|
||||||
print('get_per_commitment_secret_from_seed() per_commitment_secret', per_commitment_secret)
|
for bitindex in range(bits, -1, -1): # 47, 46, ..., 0
|
||||||
print('get_per_commitment_secret_from_seed() i', i)
|
|
||||||
for bitindex in range(47, -1, -1): # 47, 46, ..., 0
|
|
||||||
mask = 1 << bitindex
|
mask = 1 << bitindex
|
||||||
if i & mask:
|
if i & mask:
|
||||||
print('get_per_commitment_secret_from_seed() bitindex, mask', bitindex, mask)
|
pcs_bytes = bytearray(per_commitment_secret.to_bytes(byteorder="big", length=32))
|
||||||
print('get_per_commitment_secret_from_seed() branch entered')
|
pcs_bytes[bitindex // 8] ^= 1 << (bitindex % 8)
|
||||||
per_commitment_secret ^= mask
|
per_commitment_secret = int.from_bytes(bitcoin.sha256(pcs_bytes), byteorder="big")
|
||||||
print('get_per_commitment_secret_from_seed() per_commitment_secret br1', per_commitment_secret)
|
|
||||||
pcs_bytes = per_commitment_secret.to_bytes(byteorder="big", length=32)
|
|
||||||
per_commitment_secret = int.from_bytes(bitcoin.sha256(pcs_bytes[::-1]), byteorder="big")
|
|
||||||
print('get_per_commitment_secret_from_seed() per_commitment_secret br2', per_commitment_secret)
|
|
||||||
return per_commitment_secret
|
return per_commitment_secret
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -234,14 +234,14 @@ class Test_LNBase(unittest.TestCase):
|
||||||
|
|
||||||
def test_per_commitment_secret_from_seed(self):
|
def test_per_commitment_secret_from_seed(self):
|
||||||
self.assertEqual(bh2u(0x915c75942a26bb3a433a8ce2cb0427c29ec6c1775cfc78328b57f6ba7bfeaa9c.to_bytes(byteorder="big", length=32)),
|
self.assertEqual(bh2u(0x915c75942a26bb3a433a8ce2cb0427c29ec6c1775cfc78328b57f6ba7bfeaa9c.to_bytes(byteorder="big", length=32)),
|
||||||
bh2u(get_per_commitment_secret_from_seed(0x0101010101010101010101010101010101010101010101010101010101010101, 1).to_bytes(byteorder="big", length=32)))
|
bh2u(get_per_commitment_secret_from_seed(0x0101010101010101010101010101010101010101010101010101010101010101, 47, 1).to_bytes(byteorder="big", length=32)))
|
||||||
|
|
||||||
self.assertEqual(bh2u(0x02a40c85b6f28da08dfdbe0926c53fab2de6d28c10301f8f7c4073d5e42e3148.to_bytes(byteorder="big", length=32)),
|
self.assertEqual(bh2u(0x02a40c85b6f28da08dfdbe0926c53fab2de6d28c10301f8f7c4073d5e42e3148.to_bytes(byteorder="big", length=32)),
|
||||||
bh2u(get_per_commitment_secret_from_seed(0x0000000000000000000000000000000000000000000000000000000000000000, 281474976710655).to_bytes(byteorder="big", length=32)))
|
bh2u(get_per_commitment_secret_from_seed(0x0000000000000000000000000000000000000000000000000000000000000000, 47, 281474976710655).to_bytes(byteorder="big", length=32)))
|
||||||
#self.assertEqual(0x7cc854b54e3e0dcdb010d7a3fee464a9687be6e8db3be6854c475621e007a5dc,
|
self.assertEqual(0x7cc854b54e3e0dcdb010d7a3fee464a9687be6e8db3be6854c475621e007a5dc,
|
||||||
# get_per_commitment_secret_from_seed(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 281474976710655))
|
get_per_commitment_secret_from_seed(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 47, 281474976710655))
|
||||||
#self.assertEqual(0x56f4008fb007ca9acf0e15b054d5c9fd12ee06cea347914ddbaed70d1c13a528,
|
self.assertEqual(0x56f4008fb007ca9acf0e15b054d5c9fd12ee06cea347914ddbaed70d1c13a528,
|
||||||
# get_per_commitment_secret_from_seed(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xaaaaaaaaaaa))
|
get_per_commitment_secret_from_seed(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 47, 0xaaaaaaaaaaa))
|
||||||
#self.assertEqual(0x9015daaeb06dba4ccc05b91b2f73bd54405f2be9f217fbacd3c5ac2e62327d31,
|
self.assertEqual(0x9015daaeb06dba4ccc05b91b2f73bd54405f2be9f217fbacd3c5ac2e62327d31,
|
||||||
# get_per_commitment_secret_from_seed(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x555555555555))
|
get_per_commitment_secret_from_seed(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 47, 0x555555555555))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue