Skip to content

Commit e16beb6

Browse files
committed
Accept and forward sign and digest alg information when creating a metadata string
Signed-off-by: Ivan Kanakarakis <[email protected]>
1 parent 17d90bf commit e16beb6

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

src/saml2/metadata.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,18 @@ def metadata_tostring_fix(desc, nspair, xmlstring=""):
7777
return xmlstring
7878

7979

80-
def create_metadata_string(configfile, config=None, valid=None, cert=None,
81-
keyfile=None, mid=None, name=None, sign=None):
80+
def create_metadata_string(
81+
configfile,
82+
config=None,
83+
valid=None,
84+
cert=None,
85+
keyfile=None,
86+
mid=None,
87+
name=None,
88+
sign=None,
89+
sign_alg=None,
90+
digest_alg=None,
91+
):
8292
valid_for = 0
8393
nspair = {"xs": "http://www.w3.org/2001/XMLSchema"}
8494
# paths = [".", "/opt/local/bin"]
@@ -96,17 +106,19 @@ def create_metadata_string(configfile, config=None, valid=None, cert=None,
96106
conf = Config()
97107
conf.key_file = config.key_file or keyfile
98108
conf.cert_file = config.cert_file or cert
99-
conf.debug = 1
100109
conf.xmlsec_binary = config.xmlsec_binary
101110
secc = security_context(conf)
102111

112+
sign_alg = sign_alg or config.signing_algorithm
113+
digest_alg = digest_alg or config.digest_algorithm
103114
if mid:
104-
eid, xmldoc = entities_descriptor(eds, valid_for, name, mid,
105-
sign, secc)
115+
eid, xmldoc = entities_descriptor(
116+
eds, valid_for, name, mid, sign, secc, sign_alg, digest_alg
117+
)
106118
else:
107119
eid = eds[0]
108120
if sign:
109-
eid, xmldoc = sign_entity_descriptor(eid, mid, secc)
121+
eid, xmldoc = sign_entity_descriptor(eid, mid, secc, sign_alg, digest_alg)
110122
else:
111123
xmldoc = None
112124

@@ -794,8 +806,9 @@ def entity_descriptor(confd):
794806
return entd
795807

796808

797-
def entities_descriptor(eds, valid_for, name, ident, sign, secc, sign_alg=None,
798-
digest_alg=None):
809+
def entities_descriptor(
810+
eds, valid_for, name, ident, sign, secc, sign_alg=None, digest_alg=None
811+
):
799812
entities = md.EntitiesDescriptor(entity_descriptor=eds)
800813
if valid_for:
801814
entities.valid_until = in_a_while(hours=valid_for)

0 commit comments

Comments
 (0)