Exemplo n.º 1
0
 /**
  * @covers CryptLib\Password\Implementation\PBKDF::create
  * @covers CryptLib\Password\Implementation\PBKDF::hash
  * @dataProvider provideTestCreate
  */
 public function testCreate($password, $expect)
 {
     $mock1 = new MockPBKDF(array('derive' => function ($p, $s, $its, $len) {
         $res = $p ^ $s;
         for ($i = 1; $i < $its; $i++) {
             $res ^= $p . $s;
         }
         return substr(str_pad($res, $len, $s[0]), 0, $len);
     }, 'getSignature' => function () {
         return 'testing';
     }));
     $mock2 = new MockGenerator(array('generate' => function ($size) {
         $res = '';
         for ($i = 0; $i < $size; $i++) {
             $res .= chr($i);
         }
         return $res;
     }));
     $pbkdf = new PBKDF($mock1, 30, 50, $mock2);
     $act = $pbkdf->create($password);
     $this->assertEquals($expect, $act);
 }