Skip to content

Commit e6267bd

Browse files
committed
If timestamp is not listed in sp, don't sign
1 parent 74526d1 commit e6267bd

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

src/zeep/wsse/signature.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,7 @@ def _signature_prepare(envelope, key, signature_method, digest_method, signature
247247
# Perform the actual signing.
248248
ctx = xmlsec.SignatureContext()
249249
ctx.key = key
250-
# Sign default elements if present
251-
timestamp = security.find(QName(ns.WSU, "Timestamp"))
252-
if timestamp != None:
253-
_sign_node(ctx, signature, timestamp, digest_method)
254-
255-
# Sign extra elements defined in WSDL
250+
# Sign elements defined in WSDL
256251
if signatures is not None:
257252
if signatures["body"] or signatures["everything"]:
258253
_sign_node(

tests/test_wsse_signature.py

+2
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,15 @@ def test_sign_timestamp_if_present(
7474
"""
7575
)
7676

77+
signatures = {"everything": False, "body": True, "header": [{'Name': 'Timestamp', 'Namespace': 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'}]}
7778
signature.sign_envelope(
7879
envelope,
7980
KEY_FILE,
8081
KEY_FILE,
8182
None,
8283
signature_method=getattr(xmlsec.Transform, signature_method),
8384
digest_method=getattr(xmlsec.Transform, digest_method),
85+
signatures=signatures,
8486
)
8587
signature.verify_envelope(envelope, KEY_FILE)
8688
digests = envelope.xpath("//ds:DigestMethod", namespaces={"ds": ns.DS})

0 commit comments

Comments
 (0)