Skip to content

Commit

Permalink
Accept and forward sign and digest alg information when creating a me…
Browse files Browse the repository at this point in the history
…tadata string

Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
  • Loading branch information
c00kiemon5ter committed Aug 11, 2022
1 parent 17d90bf commit e16beb6
Showing 1 changed file with 21 additions and 8 deletions.
29 changes: 21 additions & 8 deletions src/saml2/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,18 @@ def metadata_tostring_fix(desc, nspair, xmlstring=""):
return xmlstring


def create_metadata_string(configfile, config=None, valid=None, cert=None,
keyfile=None, mid=None, name=None, sign=None):
def create_metadata_string(
configfile,
config=None,
valid=None,
cert=None,
keyfile=None,
mid=None,
name=None,
sign=None,
sign_alg=None,
digest_alg=None,
):
valid_for = 0
nspair = {"xs": "http://www.w3.org/2001/XMLSchema"}
# paths = [".", "/opt/local/bin"]
Expand All @@ -96,17 +106,19 @@ def create_metadata_string(configfile, config=None, valid=None, cert=None,
conf = Config()
conf.key_file = config.key_file or keyfile
conf.cert_file = config.cert_file or cert
conf.debug = 1
conf.xmlsec_binary = config.xmlsec_binary
secc = security_context(conf)

sign_alg = sign_alg or config.signing_algorithm
digest_alg = digest_alg or config.digest_algorithm
if mid:
eid, xmldoc = entities_descriptor(eds, valid_for, name, mid,
sign, secc)
eid, xmldoc = entities_descriptor(
eds, valid_for, name, mid, sign, secc, sign_alg, digest_alg
)
else:
eid = eds[0]
if sign:
eid, xmldoc = sign_entity_descriptor(eid, mid, secc)
eid, xmldoc = sign_entity_descriptor(eid, mid, secc, sign_alg, digest_alg)
else:
xmldoc = None

Expand Down Expand Up @@ -794,8 +806,9 @@ def entity_descriptor(confd):
return entd


def entities_descriptor(eds, valid_for, name, ident, sign, secc, sign_alg=None,
digest_alg=None):
def entities_descriptor(
eds, valid_for, name, ident, sign, secc, sign_alg=None, digest_alg=None
):
entities = md.EntitiesDescriptor(entity_descriptor=eds)
if valid_for:
entities.valid_until = in_a_while(hours=valid_for)
Expand Down

0 comments on commit e16beb6

Please sign in to comment.