Skip to content

Commit 180f224

Browse files
committed
Add obfuscate keys to all other keystores
1 parent fef1173 commit 180f224

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

encryptcontent/plugin.py

+21-8
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def __sign_file__(self, fname, url, key):
143143
signer = eddsa.new(key, 'rfc8032')
144144
return base64.b64encode(signer.sign(h)).decode()
145145

146-
def __add_to_keystore__(self, index, key, id, password, user=''):
146+
def __add_to_keystore__(self, index, key, id):
147147
keystore = self.setup['keystore']
148148
store_id = id
149149

@@ -466,13 +466,13 @@ def on_config(self, config, **kwargs):
466466
if isinstance(password, dict):
467467
logger.error("Configuration error in yaml syntax of 'password_inventory': expected string at level '{level}', but found dict!".format(level=level))
468468
os._exit(1)
469-
self.__add_to_keystore__((KS_PASSWORD,password), new_entry['key'], new_entry['id'], password)
469+
self.__add_to_keystore__((KS_PASSWORD,password), new_entry['key'], new_entry['id'])
470470
elif isinstance(credentials, dict):
471471
for user in credentials:
472472
new_entry['uname'] = user
473-
self.__add_to_keystore__((user,credentials[user]), new_entry['key'], new_entry['id'], credentials[user], user)
473+
self.__add_to_keystore__((user,credentials[user]), new_entry['key'], new_entry['id'])
474474
else:
475-
self.__add_to_keystore__((KS_PASSWORD,password), new_entry['key'], new_entry['id'], credentials)
475+
self.__add_to_keystore__((KS_PASSWORD,password), new_entry['key'], new_entry['id'])
476476
self.setup['level_keys'][level] = new_entry
477477

478478
if self.config['sign_files']:
@@ -632,7 +632,7 @@ def on_page_markdown(self, markdown, page, config, **kwargs):
632632
self.keystore_id += 1
633633
new_entry['id'] = quote(self.config['remember_suffix'] + str(self.keystore_id), safe='~()*!\'')
634634
new_entry['key'] = get_random_bytes(32)
635-
self.__add_to_keystore__((KS_PASSWORD,index), new_entry['key'], new_entry['id'], index)
635+
self.__add_to_keystore__((KS_PASSWORD,index), new_entry['key'], new_entry['id'])
636636
self.setup['password_keys'][index] = new_entry
637637
encryptcontent['type'] = 'password'
638638
encryptcontent['key'] = self.setup['password_keys'][index]['key']
@@ -651,7 +651,7 @@ def on_page_markdown(self, markdown, page, config, **kwargs):
651651
self.keystore_id += 1
652652
new_entry['id'] = quote(self.config['remember_suffix'] + str(self.keystore_id), safe='~()*!\'')
653653
new_entry['key'] = get_random_bytes(32)
654-
self.__add_to_keystore__((KS_OBFUSCATE,index), new_entry['key'], new_entry['id'], index)
654+
self.__add_to_keystore__((KS_OBFUSCATE,index), new_entry['key'], new_entry['id'])
655655
self.setup['obfuscate_keys'][index] = new_entry
656656
encryptcontent['type'] = 'obfuscate'
657657
encryptcontent['key'] = self.setup['obfuscate_keys'][index]['key']
@@ -699,12 +699,25 @@ def on_page_context(self, context, page, config, **kwargs):
699699
:return: dict of template context variables
700700
"""
701701

702+
# Add obfuscate keys to all other keystores
703+
keystore = self.setup['keystore'] # make a copy()
704+
for index in keystore:
705+
if index[0] == KS_OBFUSCATE:
706+
if index not in self.setup['keystore_obfuscate']:
707+
self.setup['keystore_obfuscate'][index] = ';'.join(self.__encrypt_keys_from_keystore__(index))
708+
obfuscate_id = list(keystore[index].keys())[0]
709+
for index2 in keystore:
710+
if index2[0] == KS_OBFUSCATE:
711+
pass
712+
else:
713+
if obfuscate_id not in self.setup['keystore'][index2].keys():
714+
self.setup['keystore'][index2][obfuscate_id] = keystore[index][obfuscate_id]
715+
702716
# Encrypt all keys to keystore
703717
# It just encrypts once, but needs to run on every page
704718
for index in self.setup['keystore']:
705719
if index[0] == KS_OBFUSCATE:
706-
if index not in self.setup['keystore_obfuscate']:
707-
self.setup['keystore_obfuscate'][index] = ';'.join(self.__encrypt_keys_from_keystore__(index))
720+
pass
708721
elif index[0] == KS_PASSWORD:
709722
if index not in self.setup['keystore_password']:
710723
self.setup['keystore_password'][index] = ';'.join(self.__encrypt_keys_from_keystore__(index))

0 commit comments

Comments
 (0)