<?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>nRF8001 Bonding procedures</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/26731/nrf8001-bonding-procedures</link><description>Hi, 
 I&amp;#39;ve studied the &amp;quot;ble_HID_template.ino&amp;quot; example and I&amp;#39;ve come up with some doubts and need some clarifications in some points, they are listed below: 
 1 - Does nRF8001 D support Out of Band (OOB) Pairing? From the nRFgo Studio I can check only</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 10 Nov 2017 13:10:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/26731/nrf8001-bonding-procedures" /><item><title>RE: nRF8001 Bonding procedures</title><link>https://devzone.nordicsemi.com/thread/105110?ContentTypeID=1</link><pubDate>Fri, 10 Nov 2017 13:10:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b53a8122-3258-4727-8ca2-75b8bf37e5a2</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;That is a reasonable call. Please accept the answer and we can close this case.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF8001 Bonding procedures</title><link>https://devzone.nordicsemi.com/thread/105109?ContentTypeID=1</link><pubDate>Fri, 10 Nov 2017 13:05:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c882e8fd-b48b-4682-8aaa-759b1686b6ea</guid><dc:creator>didier</dc:creator><description>&lt;p&gt;Thanks David! The ideia behind OOB would be permitting the administrador from the module, which we are creating, to create new users, and only them, that would be able to access the module. Anyways after some research I checked that Android is not using static ble addresses anymore and moreover the OOB is related to the MAC of the devices and we need to create some related to the Mobile Phone No. Anyways bonding will not be useful to us, we are going to create the ciphering and authentication at application layer. Thanks for your support.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF8001 Bonding procedures</title><link>https://devzone.nordicsemi.com/thread/105107?ContentTypeID=1</link><pubDate>Fri, 10 Nov 2017 10:18:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd6b0198-962b-418f-af3a-158f4ea243dd</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Clarification on (2) -&amp;gt; What is the central device being used ? How do you intend to use OOB. OOB in only distributing the STK (Key used for encryption the bonding process). In anycase OOB in the BTLE level is not supported by the nRF8001.&lt;/p&gt;
&lt;p&gt;(3) See attached text file for details (updated answer)&lt;/p&gt;
&lt;p&gt;(7) Correct, Any data successfully sent will be encrypted&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF8001 Bonding procedures</title><link>https://devzone.nordicsemi.com/thread/105108?ContentTypeID=1</link><pubDate>Thu, 09 Nov 2017 16:35:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32ffe8a3-bd1a-4685-a006-e24edf4e3a20</guid><dc:creator>didier</dc:creator><description>&lt;p&gt;Thanks. Check below my comments:&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;The ideia was the first device to be &amp;quot;First Works&amp;quot; and the rest would be by &amp;quot;OOB&amp;quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How would I know which bytes refer to the keys used in the security?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If I understood correctly any data event or data command that I send after the connection through
bonding is set (Connection Event and Pipes are configured) it would be encrypted. Is this correct?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF8001 Bonding procedures</title><link>https://devzone.nordicsemi.com/thread/105106?ContentTypeID=1</link><pubDate>Thu, 09 Nov 2017 14:20:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1dceeee-22c0-4f62-add5-1ea36fc564be</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Let me work through this one by one.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Does nRF8001 D support Out of Band (OOB) Pairing?
OOB is not supported. OOB is typically used with NFC for standard laptops.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can I change the security settings, from the initial ones configured in nRFgo Studio, dynamically?
Changing IO capabilites on the fly is odd as the keys would already have been exchanged, so the link security level is already fixed when the keys are stored on the Central.
You can change the IO capability by editing the Setup data that has been created and regenerating the CRC for it. Make sure that this is what you really want to do.
&lt;a href="https://github.com/NordicSemiconductor/ble-sdk-arduino/tree/master/documentation/libraries/BLE/examples/ble_modify_setup_data"&gt;Modify nRF8001 Setup example and doc&lt;/a&gt;.
The &lt;a href="https://github.com/sandeepmistry/arduino-BLEPeripheral/blob/master/API.md"&gt;BLEPeripheral Arduino project&lt;/a&gt; also has some good examples for the Setup and DynamicData.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What is the content of the DynamicData stored in the nRF8001 (Data retrieved using the ReadDynamicData command) ? How big can it be?
This contains the state information of the Client Configuration Characteristic Descriptors and the keys. When you generate the services.h file , you will see &amp;quot;ublue_setup.gen.out.txt&amp;quot;, which provides some indication of the size. However you will need to verify the size on your nRF8001 Setup by looking at the actual number of ReadDynamicData messages before you freeze the space requirements.
You can store as many bonds as your storage allows.
&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/7230.Dynamic-data-interface-over-ACI.txt"&gt;Dynamic data interface over ACI.txt&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can reduce the size of the dynamic data by skipping some of the stored keys but you will need to match the sizes by padding the dynamic data when doing WriteDynamicData.
Ideally keep the key size to 16.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;quot;lib_aci_bond&amp;quot; is to create bonds with new devices and &amp;quot;lib_aci_connect&amp;quot; is to connect to previously bonded devices. Is this correct?
Correct&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Does this behavior of only accepting previously bonded device is because of security enabled configuration or aci_state.bonded variable?
This because of the security enabled configuration. If security is enabled then data will be transmitted only on the secured link. A Credit event will arrive when the data is successfully transmitted.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When can I consider that the data packets exchanged between the paired devices are encrypted? After receiving a &amp;quot;ConnectedEvent&amp;quot; ?
Typically the link will be encrypted when the central initiates the encryption, the data will be transmitted after the link is encrypted and a Credit Event will be sent back if the data was transmitted successfully on the security params that were set or a PipeErrorEvent may result due to a failure.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Edit: Added links and text files for modifying the Setup and DynamicData&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>