Example #1
0
 public function hashcashMint($bits = null)
 {
     $stamp = null;
     if ($bits === null) {
         $bits = static::HASHCASH_BITS_MIN;
     }
     if ($this->getLocalNode()) {
         $hashcash = new Hashcash($bits, $this->getLocalNode()->getIdHexStr());
         $hashcash->setDate(date(Hashcash::DATE_FORMAT12));
         try {
             $stamp = $hashcash->mint();
         } catch (Exception $e) {
             $this->log('error', $e->getMessage());
         }
         // @codeCoverageIgnoreEnd
     }
     return $stamp;
 }
Example #2
0
 public function testSave3()
 {
     #fwrite(STDOUT, __METHOD__.''."\n");
     $db = new HashcashDb('test_data/test_hashcashs3.yml');
     $ts = time();
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setResource('res1');
     $hashcash->mint();
     $this->assertTrue($hashcash->verify());
     $this->assertTrue($db->addHashcash($hashcash));
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate(date(Hashcash::DATE_FORMAT, $ts - 3600 * 24 * 90));
     $hashcash->setResource('res2');
     $hashcash->mint();
     $this->assertFalse($hashcash->verify());
     $this->assertTrue($db->addHashcash($hashcash));
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate(date(Hashcash::DATE_FORMAT, $ts - 3600 * 24 * 90));
     $hashcash->setResource('res3');
     $hashcash->setExpiration(3600 * 24 * 120);
     $hashcash->mint();
     $this->assertTrue($hashcash->verify());
     $this->assertTrue($db->addHashcash($hashcash));
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate(date(Hashcash::DATE_FORMAT, $ts - 3600 * 24 * 10));
     $hashcash->setResource('res4');
     $hashcash->mint();
     $this->assertTrue($hashcash->verify());
     $this->assertTrue($db->addHashcash($hashcash));
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate(date('ymdHis', $ts - 60));
     $hashcash->setResource('res5');
     $hashcash->setExpiration(30);
     $hashcash->mint();
     $this->assertFalse($hashcash->verify());
     $this->assertTrue($db->addHashcash($hashcash));
     $hashcash = new Hashcash();
     $hashcash->setVersion(1);
     $hashcash->setBits(5);
     $hashcash->setDate(date(Hashcash::DATE_FORMAT12, $ts - 60));
     $hashcash->setResource('res6');
     $hashcash->mint();
     $this->assertTrue($hashcash->verify());
     $this->assertTrue($db->addHashcash($hashcash));
     #fwrite(STDOUT, __METHOD__.': save '.$db->save()."\n");
     $this->assertTrue($db->save() > 0);
     $this->assertFileExists('test_data/test_hashcashs3.yml');
 }
Example #3
0
print 'signal setup: ' . ($sig ? 'ok' : 'failed') . "\n";
$sig = pcntl_signal(SIGINT, 'sigExit');
print 'signal setup: ' . ($sig ? 'ok' : 'failed') . "\n";
$sig = pcntl_signal(SIGTERM, 'sigExit');
print 'signal setup: ' . ($sig ? 'ok' : 'failed') . "\n";
fwrite(STDOUT, 'bits: ' . BITS . "\n");
fwrite(STDOUT, 'tests: ' . TESTS . "\n");
$diffMin = TIME_MAX;
$diffMax = 0;
for ($testno = 1; $testno <= TESTS && !$exit; $testno++) {
    $hashcash = new Hashcash(BITS, '*****@*****.**');
    $stamp = '';
    $start = time();
    fwrite(STDOUT, 'mint ' . $testno . '/' . TESTS . ': ');
    pcntl_alarm(TIME_MAX);
    $stamp = $hashcash->mint();
    pcntl_alarm(null);
    $diff = time() - $start;
    if ($diff > $diffMax) {
        $diffMax = $diff;
    }
    if ($diff < $diffMin) {
        $diffMin = $diff;
    }
    fwrite(STDOUT, $diff . ' sec "' . $stamp . '"   ' . $hashcash->getAttempts() . "\n");
    $times[] = $diff;
    if (!$stamp) {
        break;
    }
}
fwrite(STDOUT, 'bits: ' . BITS . "\n");
Example #4
0
 public function testVerify()
 {
     #$this->markTestIncomplete('This test has not been implemented yet.');
     #$this->assertTrue(true); return;
     $hashcash = new Hashcash();
     $hashcash->setExpiration(0);
     $this->assertTrue($hashcash->verify('1:20:140422:mint2::ArrRIabEj3nZrOcM:0000000000007u1E'));
     $this->assertTrue($hashcash->verify('1:24:140422:mint2:ext1:Nde2ffWsRoe3DXVQ:00000001M+iu'));
     $this->assertTrue($hashcash->verify('1:20:140422:mint2:ext2:salt2:256507'));
     $this->assertTrue($hashcash->verify('1:28:140422:::s15xXleWocBKSA95Zw4e1Q==:245861178'));
     $this->assertTrue($hashcash->verify('1:21:870221:thefox::2B6kv/rFiCdJRzqhH7P2eA==:995214'));
     $this->assertFalse($hashcash->verify('1:20:140422:mint3::ArrRIabEj3nZrOcM:0000000000007u1E'));
     $hashcash->setExpiration(3600 * 24 * 365);
     $this->assertFalse($hashcash->verify('1:21:870221:thefox::2B6kv/rFiCdJRzqhH7P2eA==:995214'));
     $hashcash1 = new Hashcash();
     $hashcash1->setBits(10);
     $hashcash2 = new Hashcash();
     $this->assertTrue($hashcash2->verify($hashcash1->mint()));
 }