@@ -143,7 +143,7 @@ def __sign_file__(self, fname, url, key):
143
143
signer = eddsa .new (key , 'rfc8032' )
144
144
return base64 .b64encode (signer .sign (h )).decode ()
145
145
146
- def __add_to_keystore__ (self , index , key , id , password , user = '' ):
146
+ def __add_to_keystore__ (self , index , key , id ):
147
147
keystore = self .setup ['keystore' ]
148
148
store_id = id
149
149
@@ -466,13 +466,13 @@ def on_config(self, config, **kwargs):
466
466
if isinstance (password , dict ):
467
467
logger .error ("Configuration error in yaml syntax of 'password_inventory': expected string at level '{level}', but found dict!" .format (level = level ))
468
468
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' ])
470
470
elif isinstance (credentials , dict ):
471
471
for user in credentials :
472
472
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' ])
474
474
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' ])
476
476
self .setup ['level_keys' ][level ] = new_entry
477
477
478
478
if self .config ['sign_files' ]:
@@ -632,7 +632,7 @@ def on_page_markdown(self, markdown, page, config, **kwargs):
632
632
self .keystore_id += 1
633
633
new_entry ['id' ] = quote (self .config ['remember_suffix' ] + str (self .keystore_id ), safe = '~()*!\' ' )
634
634
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' ])
636
636
self .setup ['password_keys' ][index ] = new_entry
637
637
encryptcontent ['type' ] = 'password'
638
638
encryptcontent ['key' ] = self .setup ['password_keys' ][index ]['key' ]
@@ -651,7 +651,7 @@ def on_page_markdown(self, markdown, page, config, **kwargs):
651
651
self .keystore_id += 1
652
652
new_entry ['id' ] = quote (self .config ['remember_suffix' ] + str (self .keystore_id ), safe = '~()*!\' ' )
653
653
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' ])
655
655
self .setup ['obfuscate_keys' ][index ] = new_entry
656
656
encryptcontent ['type' ] = 'obfuscate'
657
657
encryptcontent ['key' ] = self .setup ['obfuscate_keys' ][index ]['key' ]
@@ -699,12 +699,25 @@ def on_page_context(self, context, page, config, **kwargs):
699
699
:return: dict of template context variables
700
700
"""
701
701
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
+
702
716
# Encrypt all keys to keystore
703
717
# It just encrypts once, but needs to run on every page
704
718
for index in self .setup ['keystore' ]:
705
719
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
708
721
elif index [0 ] == KS_PASSWORD :
709
722
if index not in self .setup ['keystore_password' ]:
710
723
self .setup ['keystore_password' ][index ] = ';' .join (self .__encrypt_keys_from_keystore__ (index ))
0 commit comments