@@ -199,3 +199,53 @@ def test_rk_overwrite(self):
199199
200200 creds = cm .enumerate_creds (rp_id_hash = self .rp_id_hash (self .rp_id ))
201201 self .assertEqual (1 , len (creds ))
202+
203+ def test_rk_overwrite_multiple_creds (self ):
204+ pin_client = self .get_high_level_client (user_interaction = FixedPinUserInteraction (self .pin ))
205+ self .basic_makecred_params ['options' ] = {
206+ 'rk' : True
207+ }
208+
209+ cm = self .get_credential_management ()
210+
211+ user_id_1 = secrets .token_bytes (30 )
212+ user_id_2 = secrets .token_bytes (30 )
213+
214+ res_1 = pin_client .make_credential (
215+ self .get_high_level_make_cred_options (
216+ ResidentKeyRequirement .REQUIRED , user_id = user_id_1
217+ )
218+ )
219+
220+ rps = cm .enumerate_rps ()
221+ self .assertEqual (1 , len (rps ))
222+ creds = cm .enumerate_creds (rp_id_hash = self .rp_id_hash (self .rp_id ))
223+ self .assertEqual (1 , len (creds ))
224+
225+ pin_client .make_credential (
226+ self .get_high_level_make_cred_options (
227+ ResidentKeyRequirement .REQUIRED , user_id = user_id_2
228+ )
229+ )
230+ rps = cm .enumerate_rps ()
231+ self .assertEqual (1 , len (rps ))
232+ creds = cm .enumerate_creds (rp_id_hash = self .rp_id_hash (self .rp_id ))
233+ self .assertEqual (2 , len (creds ))
234+
235+ pin_client .get_assertion (self .get_high_level_assertion_opts_from_cred (cred = res_1 , rp_id = self .rp_id ))
236+
237+ rps = cm .enumerate_rps ()
238+ self .assertEqual (1 , len (rps ))
239+ creds = cm .enumerate_creds (rp_id_hash = self .rp_id_hash (self .rp_id ))
240+ self .assertEqual (2 , len (creds ))
241+
242+ pin_client .make_credential (
243+ self .get_high_level_make_cred_options (
244+ ResidentKeyRequirement .REQUIRED , user_id = user_id_1
245+ )
246+ )
247+
248+ rps = cm .enumerate_rps ()
249+ self .assertEqual (1 , len (rps ))
250+ creds = cm .enumerate_creds (rp_id_hash = self .rp_id_hash (self .rp_id ))
251+ self .assertEqual (2 , len (creds ))
0 commit comments