async def finish_authentication(self, username, password):
<EOL>self.srp.step1(username, password)<EOL>data = await self._send_plist(<EOL>'<STR_LIT>', method='<STR_LIT>', user=username)<EOL>resp = plistlib.loads(data)<EOL>pub_key, key_proof = self.srp.step2(resp['<STR_LIT>'], resp['<STR_LIT>'])<EOL>await self._send_plist(<EOL>'<STR_LIT>',<EOL>pk=binascii.unhexlify(pub_key),<EOL>proof=binascii.unhexlify(key_proof))<EOL>epk, tag = self.srp.step3()<EOL>await self._send_plist('<STR_LIT>', epk=epk, authTag=tag)<EOL>return True<EOL>
Finish authentication process.

        A username (generated by new_credentials) and the PIN code shown on
        screen must be provided.