<?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>Pairing with iOS</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/10501/pairing-with-ios</link><description>Hi, 
 I am having a BLE peripheral on NRF51822 chip.
I have set to MITM to 0.
I want to communicate with an iOS app which will act as central device.
When i first connect with the iOS app it asks &amp;quot;Whether you want to pair or not&amp;quot;.
I then click on</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 11 Oct 2016 12:16:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/10501/pairing-with-ios" /><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39056?ContentTypeID=1</link><pubDate>Tue, 11 Oct 2016 12:16:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fe578449-0e3d-46e7-8b18-fa920965d1e8</guid><dc:creator>benevbright</dc:creator><description>&lt;p&gt;Is this correct? Device has to be bonded with iOS above 9.0?? @run_ar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39054?ContentTypeID=1</link><pubDate>Tue, 08 Dec 2015 09:09:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3b403e52-1b7e-487f-a4af-f0c70bd3bf59</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;The Sample gls code should store bond info. Are you sure you actually bonded with the device?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39055?ContentTypeID=1</link><pubDate>Tue, 08 Dec 2015 04:01:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4cd955f-bd2a-4b89-8080-67235a2a2313</guid><dc:creator>SumitS</dc:creator><description>&lt;p&gt;Thanks. I can use the device manager as it is. Currently i am using the sample ble_gls code. In that it is not storing the bond information. Is there any sample code or example which shows how to use the p_storage. Or what changes i need to make in the existing code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39051?ContentTypeID=1</link><pubDate>Mon, 07 Dec 2015 13:44:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94c611d9-658d-4584-9d49-2a4c3c896f4a</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;By default DM uses p_storage to save bond info++ in flash. If possible I think it is more convenient to just use the device manager as is. If you want to save it in eeprom instead you have to do a lot of modifications to the device manager.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39052?ContentTypeID=1</link><pubDate>Sat, 05 Dec 2015 04:59:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:492e8851-4a76-4c1e-90a6-a3bf342c0020</guid><dc:creator>SumitS</dc:creator><description>&lt;p&gt;Can i store the pairing information in my peripheral. I have an EEPROM memory. What pairing information i need to store. And when i power on again my peripheral i need to use the stored pairing data. What changes i need to make to my code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39053?ContentTypeID=1</link><pubDate>Mon, 30 Nov 2015 08:15:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7503387c-42b0-4be2-8ac0-5f589f0ece87</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;As per the profile specification a Glucose Sensor shall bond with the collector. You can delete a device by using &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk51.v10.0.0/group__dm__cntxt__mgmt__api.html?cp=4_1_0_6_2_11_4_2_3#gaf267e34f237c41665fd9df15dd32c531"&gt;dm_device_delete&lt;/a&gt;. However the iOS device will still have it&amp;#39;s keys so you have delete them manually from the bluetooth menu. Note that if you don&amp;#39;t follow the profile specification you are not compliant with the bluetooth specification, and you might risk violating IP.&lt;/p&gt;
&lt;p&gt;Antonio: Yes, pairing is part of the bonding process and is supported as part of the this process. Creating a bond is called pairing in iOS, so this can be a bit confusing. So when I say that pairing is not longer supported in iOS 9.x I mean to say that it isn&amp;#39;t possible to pair without storing the keys for subsequent connections, i.e. bonding.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39050?ContentTypeID=1</link><pubDate>Sun, 29 Nov 2015 22:53:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fa00fb56-ff42-488b-9c8c-6478b20c10e4</guid><dc:creator>Antonio</dc:creator><description>&lt;p&gt;I am confused. What do you mean they do not support pairing? Maybe this is a newbie question but, isn&amp;#39;t pairing  the first step of bonding?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39049?ContentTypeID=1</link><pubDate>Sat, 28 Nov 2015 10:40:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5802425d-a450-424a-b099-3d9642b1a249</guid><dc:creator>SumitS</dc:creator><description>&lt;p&gt;Well, I am developing a glucose application. As i have already mentioned i have removed the security after setting MITM to 0. When i connect with the iOS Nordic glucose app, it connects and asks whether you want to pair. Then, when i write to RACP charatcteristic of the glucose service i am able to write to the characteristic and read data back. Then again i disconnect the device. Now again when i establish the BLE communication, it doesnt asks for the pairing. Now when i try to write to the RACP characteristic it doesnt write. It gives an error Encryption Insufficient. Now i go to settings of iPhone and in bluetooth i select the option of Forget Device. Now if I establish the BLE connection again, the iOS device asks for the pairing and i am able to write to the RACP characteristic. Hence, i needed to know if i can delete the bonding information. As you suggested i can delete the bonding information from the peripheral side, can you guide us how to do that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39058?ContentTypeID=1</link><pubDate>Fri, 27 Nov 2015 22:07:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6dfa4008-da6c-4654-9811-beb8cbc793af</guid><dc:creator>Gustavo - Argenox</dc:creator><description>&lt;p&gt;Sumit,&lt;/p&gt;
&lt;p&gt;I will echo the questions here to ask why would you want to constantly pair? The disadvantages of pairing again are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Both devices expend energy and take time to generate keys and exchange them again. This causes a delay before your app can actually connect to the device.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Since they keys are constantly being exchanged, you&amp;#39;re actually weakening the security because it&amp;#39;s easier to sniff the initial transactions which are the &amp;quot;weak&amp;quot; link. Reducing the number of pairings means less chances for this to happen&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;My suggestion is to do this on the app side. Ask the user yourself whether they want to connect. Note that connection and pairing are different concepts. Pairing means that the encryption and other keys have been exchanged between the devices, while connection can be done with or without pairing. You don&amp;#39;t have to be paired to be connected, and you do have to be connected if you&amp;#39;re paired.&lt;/p&gt;
&lt;p&gt;There are a few cases where you do want to pair, but it depends on your product.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39057?ContentTypeID=1</link><pubDate>Fri, 27 Nov 2015 19:38:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba5e6bf0-6171-4f40-9ef4-aeafed428827</guid><dc:creator>Eric Stutzenberger</dc:creator><description>&lt;p&gt;Paring with iOS is notoriously difficult to get right and it is very annoying for the user experience depending on the application.&lt;/p&gt;
&lt;p&gt;I agree with run_ar in asking why you want to do this.&lt;/p&gt;
&lt;p&gt;However, I&amp;#39;ll also add that if you are using pairing/bonding for security, then in this situation, you might want to implement your own device and app side security mechanism.  This requires incorporating your own encryption engine on the device side (such as AES-128).  You will likely want to choose something that is available on iOS (and probably Android also).  So, if data privacy is your goal, then you can forego built-in BLE encryption (it&amp;#39;s really easy to break anyway) and build in your own encryption scheme.  You may also want to consider some form of authentication to make sure only your app can talk to your device.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39048?ContentTypeID=1</link><pubDate>Fri, 27 Nov 2015 09:53:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:80251d40-65c9-4b82-8047-1e9655ebb02b</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;This is not possible on iOS, and has to be done manually by the end user. On the nRF51; sure, but why do you want to do this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39047?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2015 07:00:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09685fae-9f89-40fd-95dc-99ee7e8a0d1e</guid><dc:creator>SumitS</dc:creator><description>&lt;p&gt;Is there anyway programmatically we can delete the bond information when the device loses connection in iOS and peripheral.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing with iOS</title><link>https://devzone.nordicsemi.com/thread/39046?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2015 06:43:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bafd5d8b-1daf-4ab7-b173-c67f1d0318c4</guid><dc:creator>run_ar</dc:creator><description>&lt;p&gt;Why do you want to do this? Unfortunately, from iOS9.x you have to bond with iOS. For some reason they decided not to support pairing anymore (at least not with iOS9.1). Unfortunately this means you have to manually delete the bond data on both your peripheral and central if you want to create a new bond.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>