Hello all, I'm new to BLE, and I'd like to ask about pairing using mynewt. 1- After setting *syscfg* parameters, I used (*ble_gap_security_initiate*) function to initiate the GAP security procedure, and I've used it after ( *ble_gap_conn_find*). 2- Then I will check on actions in *BLE_GAP_EVENT_PASSKEY_ACTION* which is inside *callback gap_event function*, Sorry but I'm a little bit confused here, I saw an email from the mail archive in which someone was asking about pairing, and he used (*struct ble_sm_io*) to store the action then he used (*ble_sm_inject_io()*)function to pass the key, And I've tried this method on espressif example (here <https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/nimble/blecent>) (PS: I've edited the code to perform pairing), and it worked, but when I searched for it to get more information about it, I didn't find it in the documentation, but I found it on GitHub codes, rather I found *(struct * *ble_gap_passkey_params)* which I think is similar to *(ble_sm_io)*. So I want to ask about: 1- whether using *(ble_sm_io)* is the right method or it's not supported. 2- If it's not supported, then how to use *(ble_gap_passkey_params)* or how to complete the procedure of passing keys. Sorry If you find my question very basic for you. Thanks in advance.