@@ -156,7 +156,7 @@ class XMLSignatureProcessor(XMLProcessor):
156
156
def _get_digest (self , data , digest_algorithm ):
157
157
hasher = Hash (algorithm = digest_algorithm , backend = default_backend ())
158
158
hasher .update (data )
159
- return ensure_str ( b64encode ( hasher .finalize ()) )
159
+ return hasher .finalize ()
160
160
161
161
def _get_digest_method (self , digest_algorithm_id , methods = None ):
162
162
if methods is None :
@@ -515,7 +515,7 @@ def _build_sig(self, sig_root, reference_uris, c14n_inputs, sig_insp, payload_in
515
515
digest_value = SubElement (reference , ds_tag ("DigestValue" ))
516
516
payload_c14n = self ._c14n (c14n_inputs [i ], algorithm = self .c14n_alg , inclusive_ns_prefixes = payload_insp )
517
517
digest = self ._get_digest (payload_c14n , self ._get_digest_method_by_tag (self .digest_alg ))
518
- digest_value .text = digest
518
+ digest_value .text = ensure_str ( b64encode ( digest ))
519
519
signature_value = SubElement (sig_root , ds_tag ("SignatureValue" ))
520
520
return signed_info , signature_value
521
521
@@ -869,11 +869,11 @@ def verify(self, data, require_x509=True, x509_cert=None, cert_subject_name=None
869
869
copied_root = self .fromstring (self .tostring (root ))
870
870
copied_signature_ref = self ._get_signature (copied_root )
871
871
transforms = self ._find (reference , "Transforms" , require = False )
872
- digest_algorithm = self ._find (reference , "DigestMethod" ).get ("Algorithm" )
872
+ digest_alg = self ._find (reference , "DigestMethod" ).get ("Algorithm" )
873
873
digest_value = self ._find (reference , "DigestValue" )
874
874
payload = self ._resolve_reference (copied_root , reference , uri_resolver = uri_resolver )
875
875
payload_c14n = self ._apply_transforms (payload , transforms , copied_signature_ref , c14n_algorithm )
876
- if digest_value .text != self ._get_digest (payload_c14n , self ._get_digest_method (digest_algorithm )):
876
+ if b64decode ( digest_value .text ) != self ._get_digest (payload_c14n , self ._get_digest_method (digest_alg )):
877
877
raise InvalidDigest ("Digest mismatch for reference {}" .format (len (verify_results )))
878
878
879
879
# We return the signed XML (and only that) to ensure no access to unsigned data happens
0 commit comments