If you are using CySmart for Android, the application has an option to disable the checkbox "initiate pairing after the connection". Thus your peripheral has full control to request for Authentication.
If you want to change this, you have to change the source code of the ios application.
Whenever the Authentication request comes from the central, the peripheral device responds back with AuthReqReply() by default. It is all under the application layer. You can look this in the file BLE_eventhandler.c .
thank you for your reply. I have solved this problem and by looking at the source code I found that in 'BLE_eventHandler.c',
cypress has called 'CyBle_GappAuthReqReply' in 'CYBLE_EVT_GAP_AUTH_REQ'.
I disabled pairing by setting 'cyBle_authInfo.authErr = CYBLE_GAP_AUTH_ERROR_PAIRING_NOT_SUPPORTED;' when the pairing failed, I actively disconnected the Bluetooth connection.
Only when I allow pairing, set 'cyBle_authInfo.authErr = CYBLE_GAP_AUTH_ERROR_NONE', the pairing process can be performed normally