@@ -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