/** * Authenticate with the Whatsapp Server. * * @param Connection $connection * @param Identity $identity * @param string $challengeData * @return string Returns binary string */ protected function getAuthData(Connection $connection, Identity $identity, $challengeData) { $keys = KeyStream::generateKeys(base64_decode($identity->getPassword()), $challengeData); $connection->setInputKey($this->createKeyStream($keys[2], $keys[3])); $connection->setOutputKey($this->createKeyStream($keys[0], $keys[1])); $array = "" . $identity->getPhone()->getPhoneNumber() . $challengeData; $response = $connection->getOutputKey()->encodeMessage($array, 0, 4, strlen($array) - 4); return $response; }
public function testSettersAndGetters() { $adapterMock = m::mock('Tmv\\WhatsApi\\Connection\\Adapter\\AdapterInterface'); $adapterMock2 = m::mock('Tmv\\WhatsApi\\Connection\\Adapter\\AdapterInterface'); $nodeReaderMock = m::mock('Tmv\\WhatsApi\\Protocol\\BinTree\\NodeReader'); $nodeWriterMock = m::mock('Tmv\\WhatsApi\\Protocol\\BinTree\\NodeWriter'); $keyStreamMock = m::mock('Tmv\\WhatsApi\\Protocol\\KeyStream'); $object = new Connection($adapterMock); $this->assertEquals($adapterMock, $object->getAdapter()); $object->setAdapter($adapterMock2); $this->assertEquals($adapterMock2, $object->getAdapter()); // Lazy loading $this->assertInstanceOf('Tmv\\WhatsApi\\Protocol\\BinTree\\NodeReader', $object->getNodeReader()); $this->assertInstanceOf('Tmv\\WhatsApi\\Protocol\\BinTree\\NodeWriter', $object->getNodeWriter()); $object->setNodeReader($nodeReaderMock); $this->assertEquals($nodeReaderMock, $object->getNodeReader()); $object->setNodeWriter($nodeWriterMock); $this->assertEquals($nodeWriterMock, $object->getNodeWriter()); $object->setInputKey($keyStreamMock); $this->assertEquals($keyStreamMock, $object->getInputKey()); $object->setOutputKey($keyStreamMock); $this->assertEquals($keyStreamMock, $object->getOutputKey()); }