<?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>How could get the static address from a resolvable private address?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/57279/how-could-get-the-static-address-from-a-resolvable-private-address</link><description>Let say a situation where I want to know if the just connected client is the same as the one that was last disconnected, but if the client uses RPA than have somehow to try with whatever is saved in the flash IRKs if it fits any of those in order to compare</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 04 Feb 2020 16:04:31 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/57279/how-could-get-the-static-address-from-a-resolvable-private-address" /><item><title>RE: How could get the static address from a resolvable private address?</title><link>https://devzone.nordicsemi.com/thread/232651?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2020 16:04:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bcfc3ba3-5839-49e7-9d5c-89a33f243347</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;In any case you can&amp;nbsp;find it in my previous reply.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How could get the static address from a resolvable private address?</title><link>https://devzone.nordicsemi.com/thread/232588?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2020 13:48:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:98592da9-1fd2-4b02-9785-f50e78bd6b4d</guid><dc:creator>samsam</dc:creator><description>&lt;p&gt;I never said I need the RPA - just the opposite - I need the static (or public) address (and will provide the RPA as input parameter)&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How could get the static address from a resolvable private address?</title><link>https://devzone.nordicsemi.com/thread/232481?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2020 09:19:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eefef5b9-161c-409a-a2ee-4146d02a365c</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;The private resolvable address will change over time (e.g. every 15minutes?), so not sure why you need it. But as an example I expect you can take a look at&amp;nbsp;im_ble_evt_handler() on how to get the current peer address, where you can see that the BLE event do expose the address on the connected event (though likely on next connection event it will have changed if it is using private resolvable address):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;//On ble_evt-&amp;gt;header.evt_id == BLE_GAP_EVT_CONNECTED event you can check:
ble_evt-&amp;gt;evt.gap_evt.params.connected.peer_addr;

// Description of the peer_addr:
/**@brief Bluetooth Low Energy address. */
typedef struct
{
  uint8_t addr_id_peer : 1;       /**&amp;lt; Only valid for peer addresses.
                                       This bit is set by the SoftDevice to indicate whether the address has been resolved from
                                       a Resolvable Private Address (when the peer is using privacy).
                                       If set to 1, @ref addr and @ref addr_type refer to the identity address of the resolved address.

                                       This bit is ignored when a variable of type @ref ble_gap_addr_t is used as input to API functions. */
  uint8_t addr_type    : 7;       /**&amp;lt; See @ref BLE_GAP_ADDR_TYPES. */
  uint8_t addr[BLE_GAP_ADDR_LEN]; /**&amp;lt; 48-bit address, LSB format. */
} ble_gap_addr_t;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How could get the static address from a resolvable private address?</title><link>https://devzone.nordicsemi.com/thread/232439?ContentTypeID=1</link><pubDate>Tue, 04 Feb 2020 02:39:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8811ac12-e339-4557-9413-b89b2aaf6002</guid><dc:creator>samsam</dc:creator><description>&lt;p style="margin-top:0cm;"&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,sans-serif;font-size:9.0pt;"&gt;I&amp;#39;m looking in nRF SDK some alternative for what is available from other BLE SDKs - let say WICED:&amp;nbsp; wiced_bt_get_identity_address(RPA, identity_adress)&amp;nbsp; i.e. giving as input RPA, if the same peer device was already bonded, will&amp;nbsp; receive its static address in the&amp;nbsp;&amp;nbsp;identity_adress parameter.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align:start;"&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,sans-serif;font-size:9.0pt;"&gt;I can&amp;rsquo;t find anything like this neither in HID examples nor in SDK - the maximum I score to track - I could get a list of IRKs from a whitelist, then could iterate over and check each element of this list&amp;nbsp;with pm_address_resolve () and could get &amp;lsquo;true&amp;rsquo; if some of the tested IRK matches the RPA I&amp;rsquo;m interested in, but still will need somehow to get the static address from the IRK?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:black;font-family:&amp;#39;Arial&amp;#39;,sans-serif;font-size:9.0pt;"&gt;Thanks&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How could get the static address from a resolvable private address?</title><link>https://devzone.nordicsemi.com/thread/232296?ContentTypeID=1</link><pubDate>Mon, 03 Feb 2020 12:04:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d8fb7a9-2609-4372-b127-dfaa38006588</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I assume that since you mention IRK that the device have a bonded relationship with the peer device. In such case the IRK will be exchanged and stored to flash by the peer manager module in the nRF5 SDK, after bonding and disconnect, the device can then start advertising with whitelist and add the IRK&amp;#39;s to the whitelist. The identity resolving is handled in BLE softdevice stack/hardware. You can for instance check out the HID BLE examples (mouse and keyboard) on how this can be done.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>