<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/11939/connecting-bonding-pairing-and-whitelists</link><description>I&amp;#39;m a bit confused about nomenclature and am looking for guidance in how best to implement the needs of my ble app. From the S110 perspective, how are connecting, bonding, pairing, and whitelists related? What do these terms mean in relation to the device_manager</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 04 Apr 2017 23:36:03 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/11939/connecting-bonding-pairing-and-whitelists" /><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45224?ContentTypeID=1</link><pubDate>Tue, 04 Apr 2017 23:36:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57d1cfed-fa9f-4341-a9bd-5d8e26ed8415</guid><dc:creator>Igor Ganapolsky</dc:creator><description>&lt;p&gt;@EinarThorsrud So if I just pair, and NOT bond, can the connection still be encrypted?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45223?ContentTypeID=1</link><pubDate>Thu, 25 Feb 2016 06:27:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e490922f-90ab-4c35-a0ac-9b28cdfbbea0</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;You are right. Most phone (at least iOS devices and for Android devices with Lollipop or newer) use a random private resolvables address, that changes at regular intervals, but can be calculated from the IRK. And as you write, this makes whitelisting not usable unless they are paired or bonded. &lt;a href="https://devzone.nordicsemi.com/question/859/bonding-difference-between-irk-and-address-in-whitelist/"&gt;This post&lt;/a&gt; has some more info on the subject.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45222?ContentTypeID=1</link><pubDate>Thu, 25 Feb 2016 05:45:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2a561f01-49a6-49b8-9914-d5fcbb5a7001</guid><dc:creator>GlennEngel</dc:creator><description>&lt;p&gt;Just to recap my understanding - A device can be connected to a master and communicate via configured characteristic.  If they exchange encryption keys they can become bonded if the keys are stored for the next connection.  This somehow allows a whitelist to be used as the stored keys allow the device to recognize a previously connected master even if it has a new mac address. It sounds like whitelisting is not usable with most phones unless they are paired and bonded.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45218?ContentTypeID=1</link><pubDate>Thu, 18 Feb 2016 07:58:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:50a4da9b-e365-4562-ba4e-d6c71964f268</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;@awneil: Of course it should be 4 s. The &amp;quot;m&amp;quot; snuck in somehow, but I have updated the post now. Thanks for noticing!&lt;/p&gt;
&lt;p&gt;@GlennEngel: In principle you can use the whitelisting support in the SoftDevice without pairing or bonding. The whitelist is supplied to the SoftDevice in the call to &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s110.api.v8.0.0/group___b_l_e___g_a_p___f_u_n_c_t_i_o_n_s.html#gab82c978db30188c7f4fbf2dac1d97720"&gt;sd_ble_gap_adv_start()`&lt;/a&gt;. However, that means that you need to use a non-standard way to retrieve the IRK from the peer initially, as it is used for whitelisting. In the unlikely case that your central does not use a private resolvable address (this rules out most phones etc.), you do not need the IRK, but can just use the static address instead.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45221?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 17:32:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b8dbe50-9ee5-4779-a48e-cf6025d4efc3</guid><dc:creator>GlennEngel</dc:creator><description>&lt;p&gt;Thanks for the great definitions and links.  Is pairing an automatic part of the android gat connection or do I need to initiate this with an explicit api call?  At this point I&amp;#39;m just connecting and things are working fine but of course I want to trigger saving of the central into the white list when a connection occurs.  Is there a way to use the whitelist capability without requiring the app to explicitly pair and/or bond?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45220?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 17:25:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8192048e-fd2c-408f-9571-83d0db114d1d</guid><dc:creator>GlennEngel</dc:creator><description>&lt;p&gt;Yikes, First i read about bond_manager and discovered &lt;a href="https://devzone.nordicsemi.com/question/7407/bond-manager-or-device-manager/"&gt;via a post on this board&lt;/a&gt; that device_manager was recommended.  Now I learn that even that post is out of date and the peer_manager is now the solution of choice!  It would be good to mark those old posts and api documents with deprecated messages.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45219?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 15:45:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1266c31d-eba9-43f4-b314-4819f6e0dcdc</guid><dc:creator>awneil</dc:creator><description>&lt;p&gt;You mean, &lt;em&gt;&amp;quot;connection interval can be between 7.5 ms and 4 &lt;strong&gt;s&lt;/strong&gt;&amp;quot;&lt;/em&gt; - ie, the maximum is four &lt;strong&gt;seconds&lt;/strong&gt; (4000 ms)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: connecting, bonding, pairing, and whitelists</title><link>https://devzone.nordicsemi.com/thread/45217?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 14:50:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5adfac63-792a-4a98-b41b-39b857259c90</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;This is a short description of the terms, and how they are linked together:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Connection&lt;/strong&gt;: A central (master) can connect to a peripheral (slave). While the connection is active the master and slave will communicate regularly at a determined interval. This connection interval can be between 7.5 ms and 4 s.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pairing&lt;/strong&gt;: Devices that are initially connected can exchange encryption keys and encrypt the link. When they have, the link is secure and they are paired.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bonding&lt;/strong&gt;: Paired devices can be bonded. This means that they store the keys that have already been exchanged when they paired and use those again the next time they connect.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Whitelisting&lt;/strong&gt;: The whitelist is used to restrict connection or scanning from any other than predetermined (known) devices.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The SDK provides libraries in order to assist in bonding and whitelisting: The older &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v11.0.0/lib_device_manager.html"&gt;device manager&lt;/a&gt; and the new (currently experimental) &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v11.0.0/lib_peer_manager.html"&gt;peer manager&lt;/a&gt;. You can reset all the bonding information and disable the whitelist when desierd. E.g. with the peer manager you can delete all bonds with &lt;code&gt;pm_peer_delete_all()&lt;/code&gt; and create a new empty whitelist (&lt;code&gt;pm_wlist_create()&lt;/code&gt;)and set it (&lt;code&gt;pm_wlist_set()&lt;/code&gt;).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>