ANCS does not piar after deleting bond information in iphone.

J.Kwon gravatar image

asked 2017-03-20 13:38:05 +0100

I'm testing with pca10028, ASCS(SDK11.0.0) example and iphone.

But pca10028 does not piar after deleting piaring information in iphone.

"[DM]: !!! Bond/key refresh !!!" message appears.

Then when I enter sleep mode by pressing button 1 and delete bond information in pca10028 by pressing button 2, it's paired again.

why is this happenning??

Why can not pca10028 recognize new device right after I deleted bond information in iphone(not, pca10028)?

I think pca10028 should recognize as new device because IRK distributed is changed.

edit retag flag offensive close delete report spam

1 answer

Sort by » oldest newest most voted
vibe gravatar image

answered 2017-03-20 14:41:29 +0100

updated 2017-03-20 14:47:03 +0100

The device manager in SDK 11 rejects new pairing requests from peer centrals that are already bonded to impeded the bonding information from being updated by an attacker. You can diff the device manager in SDK 11 with the one in SDK 10 if you want to revert this change.

edit flag offensive delete publish link more


How can device manager know change of bondong information?

I think iphone's pairing information will be changed when I delete bonding information in the iphone, So device manager(pca10028) will not be able to recognize as already bonded device.

J.Kwon ( 2017-03-20 16:38:27 +0100 )editconvert to answer

New encryption keys will be exchanged when doing a bond refresh, but the IRK/Address of the central will remain the same. Device manager checks for address or IRK match to determine if it has bond info for a connected peer device.

Vidar Berg ( 2017-03-21 07:51:03 +0100 )editconvert to answer

Thank you. I now know that IRK is unique per device.

J.Kwon ( 2017-03-24 07:11:49 +0100 )editconvert to answer

Hi, with peer manage it is enough to change this command line:

     // Reject pairing request from an already bonded peer.
     pm_conn_sec_config_t conn_sec_config = {.allow_repairing = false};
     pm_conn_sec_config_reply(p_evt->conn_handle, &conn_sec_config);

setting the allow.reparing in true.Correct? But i'm very curious about this situation. I expect that if i delete the bonding information the peer manager don't remember that thsi device was bonded in the past.

is there a tutorial that can be descrive this situation?

Thanks, Anna

annapalu ( 2017-04-06 10:09:46 +0100 )editconvert to answer

Hi, Can you confirm that is sufficient change the flag .allow_reparing = true, to allow the bonding with already bondend device?

annapalu ( 2017-07-19 11:09:50 +0100 )editconvert to answer

Yes, I confirmed. Thank you.

JoonDong ( 2017-07-19 23:03:02 +0100 )editconvert to answer

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer. Do not ask a new question or reply to an answer here.

[hide preview]

Question Tools

1 follower


Asked: 2017-03-20 13:38:05 +0100

Seen: 85 times

Last updated: mars 20 '17