1111use SimpleSAML \Error \Exception ;
1212use SimpleSAML \Logger ;
1313use SimpleSAML \Module ;
14+ use SimpleSAML \Module \perun \ChallengeManager ;
1415use SimpleSAML \Module \perun \UpdateUESThread ;
1516
1617/**
@@ -26,6 +27,7 @@ class UpdateUserExtSource extends ProcessingFilter
2627 private $ attrMap ;
2728 private $ attrsToConversion ;
2829 private $ pathToKey ;
30+ private $ signatureAlg ;
2931
3032 const SCRIPT_NAME = 'updateUes ' ;
3133
@@ -53,6 +55,12 @@ public function __construct($config, $reserved)
5355 $ this ->attrsToConversion = [];
5456 }
5557
58+ if (isset ($ config ['signatureAlg ' ])) {
59+ $ this ->signatureAlg = (array )$ config ['signatureAlg ' ];
60+ } else {
61+ $ this ->signatureAlg = 'RS512 ' ;
62+ }
63+
5664 $ this ->attrMap = (array )$ config ['attrMap ' ];
5765 $ this ->pathToKey = $ config ['pathToKey ' ];
5866 }
@@ -81,7 +89,11 @@ public function process(&$request)
8189 }
8290
8391 $ jwk = JWKFactory::createFromKeyFile ($ this ->pathToKey );
84- $ algorithmManager = new AlgorithmManager ([new RS512 ()]);
92+ $ algorithmManager = new AlgorithmManager (
93+ [
94+ ChallengeManager::getAlgorithm ('Signature \\Algorithm ' , $ this ->signatureAlg )
95+ ]
96+ );
8597 $ jwsBuilder = new JWSBuilder ($ algorithmManager );
8698
8799 $ data = [
@@ -103,7 +115,7 @@ public function process(&$request)
103115 $ jws = $ jwsBuilder
104116 ->create ()
105117 ->withPayload ($ payload )
106- ->addSignature ($ jwk , ['alg ' => ' RS512 ' ])
118+ ->addSignature ($ jwk , ['alg ' => $ this -> signatureAlg ])
107119 ->build ();
108120
109121 $ serializer = new CompactSerializer ();
0 commit comments