protected function doTestFunctional($mac_key, $algo) { $consumer = new DiffieHellman(NULL, NULL, $algo); $server = new DiffieHellman(NULL, NULL, $algo); $dh_consumer_public = $consumer->getPublicKey(); $response = $server->associateAsServer($mac_key, $dh_consumer_public); return base64_decode($consumer->associateAsConsumer($response['enc_mac_key'], $response['dh_server_public'])); }