async def METHOD_NAME(
    self, username: str, pin_code: int, _: Optional[str]
) -> HapCredentials:
    """Finish pairing process."""
    self.srp.step1(pin_code)
    pub_key, proof = self.srp.step2(self._atv_pub_key, self._atv_salt)
    msg = messages.crypto_pairing(
        {
            TlvValue.SeqNo: b"\x03",
            TlvValue.PublicKey: pub_key,
            TlvValue.Proof: proof,
        }
    )
    resp = await self.protocol.send_and_receive(msg, generate_identifier=False)
    pairing_data = _get_pairing_data(resp)
    atv_proof = pairing_data[TlvValue.Proof]
    log_binary(_LOGGER, "Device", Proof=atv_proof)
    encrypted_data = self.srp.step3()
    msg = messages.crypto_pairing(
        {TlvValue.SeqNo: b"\x05", TlvValue.EncryptedData: encrypted_data}
    )
    resp = await self.protocol.send_and_receive(msg, generate_identifier=False)
    pairing_data = _get_pairing_data(resp)
    encrypted_data = pairing_data[TlvValue.EncryptedData]
    return self.srp.step4(encrypted_data)