@@ -628,7 +628,7 @@ def condition_ok(self, lax=False):
628628
629629 return True
630630
631- def decrypt_attributes (self , attribute_statement ):
631+ def decrypt_attributes (self , attribute_statement , keys = None ):
632632 """
633633 Decrypts possible encrypted attributes and adds the decrypts to the
634634 list of attributes.
@@ -642,11 +642,11 @@ def decrypt_attributes(self, attribute_statement):
642642
643643 for encattr in attribute_statement .encrypted_attribute :
644644 if not encattr .encrypted_key :
645- _decr = self .sec .decrypt (encattr .encrypted_data )
645+ _decr = self .sec .decrypt_keys (encattr .encrypted_data , keys = keys )
646646 _attr = attribute_from_string (_decr )
647647 attribute_statement .attribute .append (_attr )
648648 else :
649- _decr = self .sec .decrypt (encattr )
649+ _decr = self .sec .decrypt_keys (encattr , keys = keys )
650650 enc_attr = encrypted_attribute_from_string (_decr )
651651 attrlist = enc_attr .extensions_as_elements ("Attribute" , saml )
652652 attribute_statement .attribute .extend (attrlist )
@@ -734,7 +734,7 @@ def _holder_of_key_confirmed(self, data):
734734
735735 return has_keyinfo
736736
737- def get_subject (self ):
737+ def get_subject (self , keys = None ):
738738 """ The assertion must contain a Subject
739739 """
740740
@@ -785,8 +785,9 @@ def get_subject(self):
785785 self .name_id = subject .name_id
786786 elif subject .encrypted_id :
787787 # decrypt encrypted ID
788- _name_id_str = self .sec .decrypt (
789- subject .encrypted_id .encrypted_data .to_string ())
788+ _name_id_str = self .sec .decrypt_keys (
789+ subject .encrypted_id .encrypted_data .to_string (), keys = keys
790+ )
790791 _name_id = saml .name_id_from_string (_name_id_str )
791792 self .name_id = _name_id
792793
@@ -958,7 +959,7 @@ def parse_assertion(self, keys=None):
958959 while self .find_encrypt_data (resp ) and decr_text_old != decr_text :
959960 decr_text_old = decr_text
960961 try :
961- decr_text = self .sec .decrypt_keys (decr_text , keys )
962+ decr_text = self .sec .decrypt_keys (decr_text , keys = keys )
962963 except DecryptError as e :
963964 continue
964965 else :
@@ -981,7 +982,7 @@ def parse_assertion(self, keys=None):
981982 ) and decr_text_old != decr_text :
982983 decr_text_old = decr_text
983984 try :
984- decr_text = self .sec .decrypt_keys (decr_text , keys )
985+ decr_text = self .sec .decrypt_keys (decr_text , keys = keys )
985986 except DecryptError as e :
986987 continue
987988 else :
0 commit comments