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()); }
/** * 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); } }
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()); }