Do an asynchronous password authentication exchange with a device.

Password authenticate the client and the device. The password authentication is bidirectional and based on PAKE, such that both the client and the device learns that the other end knows the password, without revealing the password to the other end.

A specific use case for the password authentication is to prove the identity of a device which identity is not already known, e.g. in a pairing scenario.

The specified AsyncStatusReceiver closure is invoked with an error if an error occurs, see the passwordAuthenticate() function for details about error codes.


    public func passwordAuthenticateAsync(username: String, password: String, closure: @escaping AsyncStatusReceiver) 


The username (note: use the empty string if using for Password Open Pairing, see
The password (typically the open (global) or invite (per-user) pairing password)
Invoked when authentication is completed or an error occurs