Skip to content

Commit 1bc8a00

Browse files
committed
2 parents f27c7e7 + 57381ff commit 1bc8a00

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

src/saml2/client_base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ def __init__(self, config=None, identity_cache=None, state_cache=None,
135135

136136
setattr(self, attr, val)
137137

138+
for algorithm in ('signing_algorithm', 'digest_algorithm'):
139+
setattr(self, algorithm, self.config.getattr(algorithm, "sp"))
140+
138141
if self.entity_type == "sp" and not any(
139142
[
140143
self.want_assertions_signed,

src/saml2/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@
6969
"allow_unknown_attributes",
7070
"crypto_backend",
7171
"id_attr_name",
72+
"signing_algorithm",
73+
"digest_algorithm",
7274
"delete_tmpfiles",
7375
]
7476

@@ -244,6 +246,8 @@ def __init__(self, homedir="."):
244246
self.attribute = []
245247
self.attribute_profile = []
246248
self.requested_attribute_name_format = NAME_FORMAT_URI
249+
self.signing_algorithm = None
250+
self.digest_algorithm = None
247251
self.delete_tmpfiles = True
248252

249253
def setattr(self, context, attr, val):

src/saml2/entity.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,13 @@ def unpack_soap_message(text):
417417

418418
def sign(self, msg, mid=None, to_sign=None, sign_prepare=False,
419419
sign_alg=None, digest_alg=None):
420+
421+
if sign_alg is None and self.signing_algorithm:
422+
sign_alg = self.signing_algorithm
423+
424+
if digest_alg is None and self.digest_algorithm:
425+
digest_alg = self.digest_algorithm
426+
420427
if msg.signature is None:
421428
msg.signature = pre_signature_part(msg.id, self.sec.my_cert, 1,
422429
sign_alg=sign_alg,

src/saml2/server.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,9 @@ def gather_authn_response_args(self, sp_entity_id, name_id_policy, userid,
595595
except KeyError:
596596
args['best_effort'] = False
597597

598+
for algorithm in ('signing_algorithm', 'digest_algorithm'):
599+
setattr(self, algorithm, self.config.getattr(algorithm, "idp"))
600+
598601
for param in ['sign_assertion', 'sign_response', 'encrypt_assertion',
599602
'encrypt_assertion_self_contained',
600603
'encrypted_advice_attributes', 'encrypt_cert_advice',

0 commit comments

Comments
 (0)