Esempio n. 1
0
 public function testGeneration()
 {
     // generating new salt
     serversalt::setPath($this->_path);
     $salt = serversalt::get();
     // mcrypt mock
     if (!defined('MCRYPT_DEV_URANDOM')) {
         define('MCRYPT_DEV_URANDOM', 1);
     }
     function mcrypt_create_iv($int, $flag)
     {
         $randomSalt = '';
         for ($i = 0; $i < 256; ++$i) {
             $randomSalt .= base_convert(mt_rand(), 10, 16);
         }
         // hex2bin requires an even length, pad if necessary
         if (strlen($randomSalt) % 2) {
             $randomSalt = '0' . $randomSalt;
         }
         return hex2bin($randomSalt);
     }
     $this->assertNotEquals($salt, serversalt::generate());
     // try setting a different path and resetting it
     serversalt::setPath($this->_otherPath);
     $this->assertNotEquals($salt, serversalt::get());
     serversalt::setPath($this->_path);
     $this->assertEquals($salt, serversalt::get());
 }
Esempio n. 2
0
 /**
  * Store the paste's data.
  *
  * @access public
  * @throws Exception
  * @return void
  */
 public function store()
 {
     // Check for improbable collision.
     if ($this->exists()) {
         throw new Exception('You are unlucky. Try again.', 75);
     }
     $this->_data->meta->postdate = time();
     $this->_data->meta->salt = serversalt::generate();
     // store paste
     if ($this->_store->create($this->getId(), json_decode(json_encode($this->_data), true)) === false) {
         throw new Exception('Error saving paste. Sorry.', 76);
     }
 }
Esempio n. 3
0
 public function testVizhashGeneratesUniquePngsPerIp()
 {
     $vz = new vizhash16x16();
     $pngdata = $vz->generate('127.0.0.1');
     file_put_contents($this->_file, $pngdata);
     $finfo = new finfo(FILEINFO_MIME_TYPE);
     $this->assertEquals('image/png', $finfo->file($this->_file));
     $this->assertNotEquals($pngdata, $vz->generate('2001:1620:2057:dead:beef::cafe:babe'));
     $this->assertEquals($pngdata, $vz->generate('127.0.0.1'));
     // generating new salt
     $salt = serversalt::get();
     require 'mcrypt_mock.php';
     $this->assertNotEquals($salt, serversalt::generate());
 }