Perform Password Open pairing, requesting the specified username and authenticating using the specified password.
In this mode a device has set a password which can be used in the pairing process to grant a client access to the device. The client can pair remotely to the device if necessary; it is not necessary to be on the same LAN.
This function is meant to be used in a Kotlin coroutine to suspend execution until the operation has completed.
suspend fun IamUtil.awaitPairPasswordOpen( connection: Connection, desiredUsername: String, password: String, )
- An established connection to the device this client should be paired with
- Assign this username on the device if available (pairing fails with .USERNAME_EXISTS if not)
- the common (not user-specific) password to allow pairing using Password Open pairing
- if desiredUsername is already in use on the device
- if the open pairing password was invalid for the device
- if desiredUsername is not valid as per https://docs.nabto.com/developer/api-reference/coap/iam/post-users.html#request
- if the initial user was already paired
- if the device configuration does not support local open pairing (the
IAM:PairingPasswordOpenaction is not set for the Unpaired role or the device does not support the pairing mode at all)
- if the pairing mode is configured on the device but is disabled at runtime
- if Nabto Edge IAM is not supported by the device