@@ -963,7 +963,7 @@ def validate_sign(xml, cert=None, fingerprint=None, fingerprintalg='sha1', valid
963963 return False
964964
965965 @staticmethod
966- def validate_binary_sign (signed_query , signature , cert = None , algorithm = xmlsec . TransformRsaSha1 , debug = False ):
966+ def validate_binary_sign (signed_query , signature , cert = None , algorithm = OneLogin_Saml2_Constants . RSA_SHA1 , debug = False ):
967967 """
968968 Validates signed bynary data (Used to validate GET Signature).
969969
@@ -995,7 +995,17 @@ def validate_binary_sign(signed_query, signature, cert=None, algorithm=xmlsec.Tr
995995 dsig_ctx .signKey = xmlsec .Key .load (file_cert .name , xmlsec .KeyDataFormatCertPem , None )
996996 file_cert .close ()
997997
998- dsig_ctx .verifyBinary (signed_query , algorithm , signature )
998+ # Sign the metadata with our private key.
999+ sign_algorithm_transform_map = {
1000+ OneLogin_Saml2_Constants .DSA_SHA1 : xmlsec .TransformDsaSha1 ,
1001+ OneLogin_Saml2_Constants .RSA_SHA1 : xmlsec .TransformRsaSha1 ,
1002+ OneLogin_Saml2_Constants .RSA_SHA256 : xmlsec .TransformRsaSha256 ,
1003+ OneLogin_Saml2_Constants .RSA_SHA384 : xmlsec .TransformRsaSha384 ,
1004+ OneLogin_Saml2_Constants .RSA_SHA512 : xmlsec .TransformRsaSha512
1005+ }
1006+ sign_algorithm_transform = sign_algorithm_transform_map .get (algorithm , xmlsec .TransformRsaSha1 )
1007+
1008+ dsig_ctx .verifyBinary (signed_query , sign_algorithm_transform , signature )
9991009 return True
10001010 except Exception :
10011011 return False
0 commit comments