77from cryptojwt .jwt import JWT
88from cryptojwt .key_jar import build_keyjar
99from cryptojwt .key_jar import init_key_jar
10+ from oidcmsg .exception import MissingRequiredAttribute
1011from oidcmsg .oidc import AccessTokenRequest
1112from oidcmsg .oidc import AccessTokenResponse
1213from oidcmsg .oidc import AuthorizationRequest
@@ -202,7 +203,7 @@ def test_update_service_context_with_idtoken_wrong_nonce(self):
202203 idt = JWT (ISS_KEY , iss = ISS , lifetime = 3600 )
203204 payload = {
204205 'sub' : '123456789' , 'aud' : ['client_id' ],
205- 'nonce' : 'nonce '
206+ 'nonce' : 'noice '
206207 }
207208 # have to calculate c_hash
208209 alg = 'RS256'
@@ -211,9 +212,8 @@ def test_update_service_context_with_idtoken_wrong_nonce(self):
211212
212213 _idt = idt .pack (payload )
213214 resp = AuthorizationResponse (state = 'state' , code = 'code' , id_token = _idt )
214- resp = self .service .parse_response (resp .to_urlencoded ())
215- with pytest .raises (ParameterError ):
216- self .service .update_service_context (resp , 'state2' )
215+ with pytest .raises (ValueError ):
216+ self .service .parse_response (resp .to_urlencoded ())
217217
218218 def test_update_service_context_with_idtoken_missing_nonce (self ):
219219 req_args = {'response_type' : 'code' , 'state' : 'state' , 'nonce' : 'nonce' }
@@ -229,9 +229,8 @@ def test_update_service_context_with_idtoken_missing_nonce(self):
229229
230230 _idt = idt .pack (payload )
231231 resp = AuthorizationResponse (state = 'state' , code = 'code' , id_token = _idt )
232- resp = self .service .parse_response (resp .to_urlencoded ())
233- with pytest .raises (ValueError ):
234- self .service .update_service_context (resp , 'state' )
232+ with pytest .raises (MissingRequiredAttribute ):
233+ self .service .parse_response (resp .to_urlencoded ())
235234
236235 @pytest .mark .parametrize ("allow_sign_alg_none" , [True , False ])
237236 def test_allow_unsigned_idtoken (self , allow_sign_alg_none ):
@@ -240,14 +239,14 @@ def test_allow_unsigned_idtoken(self, allow_sign_alg_none):
240239 self .service .get_request_parameters (request_args = req_args )
241240 # Build an ID Token
242241 idt = JWT (ISS_KEY , iss = ISS , lifetime = 3600 , sign_alg = 'none' )
243- payload = {'sub' : '123456789' , 'aud' : ['client_id' ]}
242+ payload = {'sub' : '123456789' , 'aud' : ['client_id' ], 'nonce' : req_args [ 'nonce' ] }
244243 _idt = idt .pack (payload )
245244 self .service .client_get ("service_context" ).behaviour ["verify_args" ] = {
246245 "allow_sign_alg_none" : allow_sign_alg_none
247246 }
248247 resp = AuthorizationResponse (state = 'state' , code = 'code' , id_token = _idt )
249248 if allow_sign_alg_none :
250- resp = self .service .parse_response (resp .to_urlencoded ())
249+ self .service .parse_response (resp .to_urlencoded ())
251250 else :
252251 with pytest .raises (UnsupportedAlgorithm ):
253252 self .service .parse_response (resp .to_urlencoded ())
0 commit comments