URI: 
       tlnonion: use random starting bytes in Sphinx packet as in updated BOLT4 - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 5e59d1a0ed773fbb64f2660ef47957e2f4740308
   DIR parent 510399d3d258fef76a390786ad447bba40a2871b
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Mon, 16 Mar 2020 04:37:52 +0100
       
       lnonion: use random starting bytes in Sphinx packet as in updated BOLT4
       
       see https://github.com/lightningnetwork/lightning-rfc/pull/697
       
       Diffstat:
         M electrum/lnonion.py                 |       8 ++++++--
         M electrum/tests/test_lnrouter.py     |       4 ++--
       
       2 files changed, 8 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/electrum/lnonion.py b/electrum/lnonion.py
       t@@ -134,7 +134,7 @@ class OnionPacket:
        
        
        def get_bolt04_onion_key(key_type: bytes, secret: bytes) -> bytes:
       -    if key_type not in (b'rho', b'mu', b'um', b'ammag'):
       +    if key_type not in (b'rho', b'mu', b'um', b'ammag', b'pad'):
                raise Exception('invalid key_type {}'.format(key_type))
            key = hmac_oneshot(key_type, msg=secret, digest=hashlib.sha256)
            return key
       t@@ -163,9 +163,13 @@ def new_onion_packet(payment_path_pubkeys: Sequence[bytes], session_key: bytes,
            hop_shared_secrets = get_shared_secrets_along_route(payment_path_pubkeys, session_key)
        
            filler = generate_filler(b'rho', num_hops, PER_HOP_FULL_SIZE, hop_shared_secrets)
       -    mix_header = bytes(HOPS_DATA_SIZE)
            next_hmac = bytes(PER_HOP_HMAC_SIZE)
        
       +    # Our starting packet needs to be filled out with random bytes, we
       +    # generate some determinstically using the session private key.
       +    pad_key = get_bolt04_onion_key(b'pad', session_key)
       +    mix_header = generate_cipher_stream(pad_key, HOPS_DATA_SIZE)
       +
            # compute routing info and MAC for each hop
            for i in range(num_hops-1, -1, -1):
                rho_key = get_bolt04_onion_key(b'rho', hop_shared_secrets[i])
   DIR diff --git a/electrum/tests/test_lnrouter.py b/electrum/tests/test_lnrouter.py
       t@@ -141,7 +141,7 @@ class Test_LNRouter(TestCaseForTestnet):
                    )),
                ]
                packet = new_onion_packet(payment_path_pubkeys, session_key, hops_data, associated_data)
parazyd.org:70 /git/electrum/commit/5e59d1a0ed773fbb64f2660ef47957e2f4740308.gph:53: line too long