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