async def finish_pairing(self, pin):
self.srp.step1(pin)<EOL>pub_key, proof = self.srp.step2(self._atv_pub_key, self._atv_salt)<EOL>msg = messages.crypto_pairing({<EOL>tlv8.TLV_SEQ_NO: b'<STR_LIT>',<EOL>tlv8.TLV_PUBLIC_KEY: pub_key,<EOL>tlv8.TLV_PROOF: proof})<EOL>resp = await self.protocol.send_and_receive(<EOL>msg, generate_identifier=False)<EOL>pairing_data = _get_pairing_data(resp)<EOL>atv_proof = pairing_data[tlv8.TLV_PROOF]<EOL>log_binary(_LOGGER, '<STR_LIT>', Proof=atv_proof)<EOL>encrypted_data = self.srp.step3()<EOL>msg = messages.crypto_pairing({<EOL>tlv8.TLV_SEQ_NO: b'<STR_LIT>',<EOL>tlv8.TLV_ENCRYPTED_DATA: encrypted_data})<EOL>resp = await self.protocol.send_and_receive(<EOL>msg, generate_identifier=False)<EOL>pairing_data = _get_pairing_data(resp)<EOL>encrypted_data = pairing_data[tlv8.TLV_ENCRYPTED_DATA]<EOL>return self.srp.step4(encrypted_data)<EOL>
Finish pairing process.