crypto.py: remove 'hash_rounds' arg from scramble_seed()

This commit is contained in:
The MMGen Project 2019-06-10 09:18:27 +00:00
commit f060ecdca8
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 8 additions and 9 deletions

View file

@ -494,7 +494,7 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file
if g.proto.is_testnet():
scramble_key += ':testnet'
dmsg_sc('str',scramble_key)
return scramble_seed(seed,scramble_key.encode(),g.scramble_hash_rounds)
return scramble_seed(seed,scramble_key.encode())
def encrypt(self,desc='new key list'):
from mmgen.crypto import mmgen_encrypt
@ -883,7 +883,7 @@ Record this checksum: it will be used to verify the password file in the future
# NB: In original implementation, pw_id_str was 'baseN', not 'bN'
scramble_key = '{}:{}:{}'.format(self.pw_fmt,self.pw_len,self.pw_id_str)
from mmgen.crypto import scramble_seed
return scramble_seed(seed,scramble_key.encode(),g.scramble_hash_rounds)
return scramble_seed(seed,scramble_key.encode())
class AddrData(MMGenObject):
msgs = {

View file

@ -37,18 +37,17 @@ keystrokes will also be used as a source of randomness.
}
def sha256_rounds(s,n):
assert is_int(n) and n > 0
for i in range(n):
s = sha256(s).digest()
return s
def scramble_seed(seed,scramble_key,hash_rounds):
def scramble_seed(seed,scramble_key):
import hmac
scr_seed = hmac.new(seed,scramble_key,sha256).digest()
step1 = hmac.new(seed,scramble_key,sha256).digest()
if g.debug:
fs = 'Seed: {!r}\nScramble key: {}\nScrambled seed: {}\n'
msg(fs.format(seed.hex(),scramble_key,scr_seed.hex()))
return sha256_rounds(scr_seed,hash_rounds)
msg(fs.format(seed.hex(),scramble_key,step1.hex()))
return sha256_rounds(step1,g.scramble_hash_rounds)
def encrypt_seed(seed,key):
return encrypt_data(seed,key,desc='seed')

View file

@ -241,7 +241,7 @@ class SubSeed(SeedBase):
nonce.to_bytes(2,'big',signed=False) + \
short.to_bytes(1,'big',signed=False)
byte_len = 16 if short else seed.length // 8
return scramble_seed(seed.data,scramble_key,g.scramble_hash_rounds)[:byte_len]
return scramble_seed(seed.data,scramble_key)[:byte_len]
class SeedSplitList(SubSeedList):
have_short = False
@ -325,7 +325,7 @@ class SeedSplit(SubSeed):
idx.to_bytes(2,'big',signed=False) + \
nonce.to_bytes(2,'big',signed=False)
byte_len = seed.length // 8
return scramble_seed(seed.data,scramble_key,g.scramble_hash_rounds)[:byte_len]
return scramble_seed(seed.data,scramble_key)[:byte_len]
class SeedSplitLast(SubSeed):