This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Private Resolvable address, HOW TO GET PEER IRK

Dear Nordic,

I would like to implement on server side Private Resolvable address according to specs. For that I need to get the IRK that has been sent to client (central). I am not able to figure out how to get this information and if is available.

in SDK i have found this structure:ble_gap_id_info_t, but I did not find it in any function or other structure. Please help.

Also is the peer IRK same for all centrals..that means peer will send same IRK to all central, so the private resolvable address is recognizable to all of them?

Thx very much, Jan

Parents
  • Dear Ulrich,

    thx for the answer. At first it little bit confused me, because I was trying for about an hour to find out and I was pretty sure I did check this event. I am probably missing some important information or knowledge.

    Can you let me know in which header file and which stack + version is that defined? I did not find for S110 and for S120 there is something in function sd_ble_gap_sec_params_reply that fills something that leads to peer IRK.

    In s110 periph_kex points to flags which keys has been exchenged...see:

    ble_gap_sec_keys_t    periph_kex; (in ble_gap_evt_auth_status_t)
    
    typedef struct
    {
      uint8_t ltk       : 1;                        /**< Long Term Key. */
      uint8_t ediv_rand : 1;                        /**< Encrypted Diversifier and Random value. */
      uint8_t irk       : 1;                        /**< Identity Resolving Key. */
      uint8_t address   : 1;                        /**< Public or static random address. */
      uint8_t csrk      : 1;                        /**< Connection Signature Resolving Key. */
    } ble_gap_sec_keys_t;
    
    

    I believe I am missing something or looking completely wrong :-(

    Thx for your help, Jan

Reply
  • Dear Ulrich,

    thx for the answer. At first it little bit confused me, because I was trying for about an hour to find out and I was pretty sure I did check this event. I am probably missing some important information or knowledge.

    Can you let me know in which header file and which stack + version is that defined? I did not find for S110 and for S120 there is something in function sd_ble_gap_sec_params_reply that fills something that leads to peer IRK.

    In s110 periph_kex points to flags which keys has been exchenged...see:

    ble_gap_sec_keys_t    periph_kex; (in ble_gap_evt_auth_status_t)
    
    typedef struct
    {
      uint8_t ltk       : 1;                        /**< Long Term Key. */
      uint8_t ediv_rand : 1;                        /**< Encrypted Diversifier and Random value. */
      uint8_t irk       : 1;                        /**< Identity Resolving Key. */
      uint8_t address   : 1;                        /**< Public or static random address. */
      uint8_t csrk      : 1;                        /**< Connection Signature Resolving Key. */
    } ble_gap_sec_keys_t;
    
    

    I believe I am missing something or looking completely wrong :-(

    Thx for your help, Jan

Children
Related