Skip to content

Commit 9385c8d

Browse files
committed
2 parents 156aee6 + 9e4da9b commit 9385c8d

File tree

4 files changed

+18
-0
lines changed

4 files changed

+18
-0
lines changed

src/saml2/client_base.py

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

182182
setattr(self, attr, val)
183183

184+
for algorithm in ('signing_algorithm', 'digest_algorithm'):
185+
setattr(self, algorithm, self.config.getattr(algorithm, "sp"))
186+
184187
if self.entity_type == "sp" and not any(
185188
[
186189
self.want_assertions_signed,

src/saml2/config.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@
6969
"extensions",
7070
"allow_unknown_attributes",
7171
"crypto_backend",
72+
"id_attr_name",
73+
"signing_algorithm",
74+
"digest_algorithm",
7275
"delete_tmpfiles",
7376
]
7477

@@ -242,6 +245,8 @@ def __init__(self, homedir="."):
242245
self.attribute = []
243246
self.attribute_profile = []
244247
self.requested_attribute_name_format = NAME_FORMAT_URI
248+
self.signing_algorithm = None
249+
self.digest_algorithm = None
245250
self.delete_tmpfiles = True
246251

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

src/saml2/entity.py

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

417417
def sign(self, msg, mid=None, to_sign=None, sign_prepare=False,
418418
sign_alg=None, digest_alg=None):
419+
420+
if sign_alg is None and self.signing_algorithm:
421+
sign_alg = self.signing_algorithm
422+
423+
if digest_alg is None and self.digest_algorithm:
424+
digest_alg = self.digest_algorithm
425+
419426
if msg.signature is None:
420427
msg.signature = pre_signature_part(msg.id, self.sec.my_cert, 1,
421428
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)