Browse Source

crypto.py:mmgen_{en,de}crypt(): whitespace, cleanups

The MMGen Project 3 years ago
parent
commit
748bf68c15

+ 4 - 2
mmgen/addrfile.py

@@ -55,10 +55,12 @@ class AddrFile(MMGenObject):
 		self.parent = parent
 		self.infile = None
 
-	def encrypt(self,desc='new key list'):
+	def encrypt(self):
 		from .crypto import mmgen_encrypt,mmenc_ext
 		from .globalvars import g
-		self.fmt_data = mmgen_encrypt(self.fmt_data.encode(),desc,'')
+		self.fmt_data = mmgen_encrypt(
+			data = self.fmt_data.encode(),
+			desc = f'new {self.parent.desc} list' )
 		self.ext += f'.{mmenc_ext}'
 
 	@property

+ 12 - 10
mmgen/crypto.py

@@ -261,36 +261,38 @@ def get_passphrase(desc,passchg=False):
 	else:
 		return ' '.join(get_words_from_user(f'Enter {pw_desc}: '))
 
-_salt_len,_sha256_len,_nonce_len = (32,32,32)
+mmenc_salt_len = 32
+mmenc_nonce_len = 32
 
 def mmgen_encrypt(data,desc='data',hash_preset=''):
-	salt  = get_random(_salt_len)
+	salt  = get_random(mmenc_salt_len)
 	iv    = get_random(g.aesctr_iv_len)
-	nonce = get_random(_nonce_len)
+	nonce = get_random(mmenc_nonce_len)
 	hp    = hash_preset or opt.hash_preset or get_hash_preset_from_user('3',desc)
 	m     = ('user-requested','default')[hp=='3']
 	vmsg(f'Encrypting {desc}')
 	qmsg(f'Using {m} hash preset of {hp!r}')
 	passwd = get_new_passphrase(desc)
 	key    = make_key(passwd,salt,hp)
-	enc_d  = encrypt_data(sha256(nonce+data).digest() + nonce + data, key, iv, desc=desc)
+	enc_d  = encrypt_data( sha256(nonce+data).digest() + nonce + data, key, iv, desc=desc )
 	return salt+iv+enc_d
 
 def mmgen_decrypt(data,desc='data',hash_preset=''):
 	vmsg(f'Preparing to decrypt {desc}')
-	dstart = _salt_len + g.aesctr_iv_len
-	salt   = data[:_salt_len]
-	iv     = data[_salt_len:dstart]
+	dstart = mmenc_salt_len + g.aesctr_iv_len
+	salt   = data[:mmenc_salt_len]
+	iv     = data[mmenc_salt_len:dstart]
 	enc_d  = data[dstart:]
 	hp     = hash_preset or opt.hash_preset or get_hash_preset_from_user('3',desc)
 	m  = ('user-requested','default')[hp=='3']
 	qmsg(f'Using {m} hash preset of {hp!r}')
 	passwd = get_passphrase(desc)
 	key    = make_key(passwd,salt,hp)
-	dec_d  = decrypt_data(enc_d,key,iv,desc)
-	if dec_d[:_sha256_len] == sha256(dec_d[_sha256_len:]).digest():
+	dec_d  = decrypt_data( enc_d, key, iv, desc )
+	sha256_len = 32
+	if dec_d[:sha256_len] == sha256(dec_d[sha256_len:]).digest():
 		vmsg('OK')
-		return dec_d[_sha256_len+_nonce_len:]
+		return dec_d[sha256_len+mmenc_nonce_len:]
 	else:
 		msg('Incorrect passphrase or hash preset')
 		return False

+ 1 - 1
mmgen/main_passgen.py

@@ -172,7 +172,7 @@ af = al.get_file()
 af.format()
 
 if keypress_confirm('Encrypt password list?'):
-	af.encrypt(desc='password list')
+	af.encrypt()
 	af.write(binary=True,desc='encrypted password list')
 else:
 	if g.test_suite_popen_spawn and g.platform == 'win':

+ 2 - 2
mmgen/tool.py

@@ -731,7 +731,7 @@ class MMGenToolCmdFileCrypt(MMGenToolCmds):
 		"encrypt a file"
 		data = get_data_from_file(infile,'data for encryption',binary=True)
 		from .crypto import mmgen_encrypt,mmenc_ext
-		enc_d = mmgen_encrypt(data,'user data',hash_preset)
+		enc_d = mmgen_encrypt(data,'data',hash_preset)
 		if not outfile:
 			outfile = f'{os.path.basename(infile)}.{mmenc_ext}'
 		write_data_to_file(outfile,enc_d,'encrypted data',binary=True)
@@ -742,7 +742,7 @@ class MMGenToolCmdFileCrypt(MMGenToolCmds):
 		enc_d = get_data_from_file(infile,'encrypted data',binary=True)
 		from .crypto import mmgen_decrypt,mmenc_ext
 		while True:
-			dec_d = mmgen_decrypt(enc_d,'user data',hash_preset)
+			dec_d = mmgen_decrypt(enc_d,'data',hash_preset)
 			if dec_d: break
 			msg('Trying again...')
 		if not outfile:

+ 6 - 4
test/misc/get_passphrase.py

@@ -25,16 +25,18 @@ from mmgen.crypto import get_passphrase,get_new_passphrase,get_hash_preset_from_
 from mmgen.wallet import Wallet
 
 def crypto():
-	pw = get_new_passphrase(desc='test script')
+	desc = 'test data'
+
+	pw = get_new_passphrase(desc=desc)
 	msg(f'==> got new passphrase: [{pw}]\n')
 
-	pw = get_passphrase(desc='test script')
+	pw = get_passphrase(desc=desc)
 	msg(f'==> got passphrase: [{pw}]\n')
 
-	hp = get_hash_preset_from_user(desc='test script')
+	hp = get_hash_preset_from_user(desc=desc)
 	msg(f'==> got hash preset: [{hp}]')
 
-	hp = get_hash_preset_from_user(desc='test script')
+	hp = get_hash_preset_from_user(desc=desc)
 	msg(f'==> got hash preset: [{hp}]')
 
 def seed():

+ 1 - 1
test/test_py_d/ts_ref.py

@@ -289,7 +289,7 @@ class TestSuiteRef(TestSuiteBase,TestSuiteShared):
 		t = self.spawn('mmgen-tool', ['-q','decrypt',f,'outfile='+dec_file,'hash_preset=1'])
 		if not g.debug_utf8:
 			restore_debug()
-		t.passphrase('user data',tool_enc_passwd)
+		t.passphrase('data',tool_enc_passwd)
 		t.written_to_file('Decrypted data')
 		dec_txt = read_from_file(dec_file)
 		imsg_r(dec_txt)

+ 2 - 2
test/test_py_d/ts_shared.py

@@ -254,8 +254,8 @@ class TestSuiteShared(object):
 			cmp_or_die(chk,chk_ref,desc='key-address list data checksum')
 		t.expect('Encrypt key list? (y/N): ','y')
 		t.usr_rand(self.usr_rand_chars)
-		t.hash_preset('new key list','1')
-		t.passphrase_new('new key list',self.kapasswd)
+		t.hash_preset('new key-address list','1')
+		t.passphrase_new('new key-address list',self.kapasswd)
 		t.written_to_file('Encrypted secret keys',oo=True)
 		return t
 

+ 3 - 3
test/test_py_d/ts_tool.py

@@ -53,15 +53,15 @@ class TestSuiteTool(TestSuiteMain,TestSuiteBase):
 		write_to_file(infile,getrand(1033),binary=True)
 		t = self.spawn('mmgen-tool',['-d',self.tmpdir,self.usr_rand_arg,'encrypt',infile])
 		t.usr_rand(self.usr_rand_chars)
-		t.hash_preset('user data','1')
-		t.passphrase_new('user data',tool_enc_passwd)
+		t.hash_preset('data','1')
+		t.passphrase_new('data',tool_enc_passwd)
 		t.written_to_file('Encrypted data')
 		return t
 
 	def tool_decrypt(self,f1):
 		out_fn = 'tool_encrypt.out'
 		t = self.spawn('mmgen-tool',['-d',self.tmpdir,'decrypt',f1,'outfile='+out_fn,'hash_preset=1'])
-		t.passphrase('user data',tool_enc_passwd)
+		t.passphrase('data',tool_enc_passwd)
 		t.written_to_file('Decrypted data')
 		d1 = self.read_from_tmpfile(self.enc_infn,binary=True)
 		d2 = self.read_from_tmpfile(out_fn,binary=True)