Пример #1
0
 /**
  * Test method for the <code>#toJSON()</code> function.
  */
 public function testToJSON()
 {
     $array = Mac::create()->setBadges(3)->setRootParams(array('content-available' => '1'))->setSound('sound.caf')->setTtl(3600)->toJSON();
     $this->assertCount(4, $array);
     $this->assertEquals(3, $array['mac_badges']);
     $this->assertEquals(array('content-available' => '1'), $array['mac_root_params']);
     $this->assertEquals('sound.caf', $array['mac_sound']);
     $this->assertEquals(3600, $array['mac_ttl']);
 }
Пример #2
0
 /**
  * Upload request
  *
  * @param string       $body
  * @param string|array $key
  * @param array        $policy
  * @return bool|Result
  */
 public function uploadRequest($body, $key, $policy = null)
 {
     $options = (is_string($key) ? array('key' => $key) : array()) + array('filename' => null);
     $policy = (array) $policy + array('scope' => $this->options['bucket'], 'deadline' => time() + 3600, 'callbackUrl' => null, 'callbackBody' => null, 'returnUrl' => null, 'returnBody' => null, 'asyncOps' => null, 'endUser' => null);
     foreach ($policy as $k => $v) {
         if ($v === null) {
             unset($policy[$k]);
         }
     }
     $token = $this->mac->signWithData(json_encode($policy));
     $request = Request::create(array('url' => $this->options['upload_url'], 'method' => 'POST', 'headers' => array('content-type' => 'multipart/form-data'), 'form' => array('token' => $token, 'key' => $options['key'])))->file($body, basename($options['filename'] ? $options['filename'] : $options['key']));
     $result = new Result($request->send(), $request);
     if ($result->ok()) {
         $result->data['url'] = $this->options['base_url'] . '/' . $result->data['key'];
     }
     return $result;
 }
Пример #3
0
    }
    public function signRequest(array $data)
    {
        $data["mac_key"] = md5(mt_rand());
        // TODO: make it more random
        // TODO: $data["kid"] = ???
        $data["mac_algorithm"] = self::MAC_ALGORITHM;
        $data["ts"] = time();
        $raw = base64_encode(json_encode($data));
        return base64_encode(hash_hmac("sha256", $raw, $this->appSecret, true)) . "." . $raw;
    }
    public function parseRequest($request)
    {
        list($sig, $raw) = explode(".", $request, 2);
        // decode the data
        $sig = base64_decode($sig);
        $data = json_decode(base64_decode($raw), true);
        if (strtoupper($data["mac_algorithm"]) !== self::MAC_ALGORITHM) {
            throw new \Exception("Unsupported MAC algorithm. Use " . self::MAC_ALGORITHM);
        }
        // check the signature by signing the data with application's secret
        if ($sig !== hash_hmac("sha256", $raw, $this->appSecret, true)) {
            throw new \Exception("Wrong signature!");
        }
        return $data;
    }
}
$mac = new Mac("abc");
$signed_message = $mac->signRequest(array("access_token" => "jr5xkCAg4hGcls9FXMVIuQ"));
echo $signed_message;
var_dump($mac->parseRequest($signed_message));
Пример #4
0
 public function getData()
 {
     $dom = new DOMDocument();
     $dom->loadHTML($this->html);
     $rows = $dom->getElementsByTagName('tr');
     foreach ($rows as $row) {
         $cols = $row->getElementsByTagName('td');
         if ($cols->length < 1) {
             continue;
         }
         $mac = new Mac();
         $mac->setSinif($cols->item(0)->nodeValue);
         $mac->setLig($cols->item(1)->nodeValue);
         $mac->setSaat($cols->item(2)->nodeValue);
         $mac->setKod($cols->item(3)->nodeValue);
         $mac->setMbs($cols->item(4)->nodeValue);
         $mac->setHandikapiyEv($cols->item(5)->nodeValue);
         $mac->setHandikapmsEv($cols->item(6)->nodeValue);
         $mac->setEv($cols->item(7)->nodeValue);
         $mac->setMacSonucu($cols->item(8)->nodeValue, $cols->item(9)->nodeValue, $cols->item(10)->nodeValue);
         $mac->setKonuk($cols->item(11)->nodeValue);
         $mac->setHandikapiyKonuk($cols->item(12)->nodeValue);
         $mac->setHandikapmsKonuk($cols->item(13)->nodeValue);
         $mac->setCifteSans($cols->item(14)->nodeValue, $cols->item(15)->nodeValue, $cols->item(16)->nodeValue);
         $mac->setHandikap($cols->item(17)->nodeValue, $cols->item(18)->nodeValue, $cols->item(19)->nodeValue);
         $mac->setGol15($cols->item(20)->nodeValue, $cols->item(21)->nodeValue);
         $mac->setGol25($cols->item(22)->nodeValue, $cols->item(23)->nodeValue);
         $mac->setGol35($cols->item(24)->nodeValue, $cols->item(25)->nodeValue);
         $mac->setToplansayi($cols->item(26)->nodeValue);
         $mac->setKarsilikli($cols->item(27)->nodeValue, $cols->item(28)->nodeValue);
         $mac->setToplamGol($cols->item(29)->nodeValue, $cols->item(30)->nodeValue, $cols->item(31)->nodeValue, $cols->item(32)->nodeValue);
         $mac->setIlkyariSonucu($cols->item(33)->nodeValue, $cols->item(34)->nodeValue, $cols->item(35)->nodeValue);
         $mac->setGol15Ilkyari($cols->item(36)->nodeValue, $cols->item(37)->nodeValue);
         $mac->setIlkyariMacSonucu($cols->item(38)->nodeValue, $cols->item(39)->nodeValue, $cols->item(40)->nodeValue, $cols->item(41)->nodeValue, $cols->item(42)->nodeValue, $cols->item(43)->nodeValue, $cols->item(44)->nodeValue, $cols->item(45)->nodeValue, $cols->item(46)->nodeValue);
         $this->data[$mac->kod] = $mac;
     }
     return $this->data;
 }
Пример #5
0
 public function testSignRequest()
 {
     $this->assertEquals('test:P2jjL3PIgphwFTw9AV_zeWKl_1Q=', $this->mac->signRequest('/stat'));
 }