Example #1
0
 public function test_blkcpy()
 {
     $dest = "0123456789abcdefghijklmnopqrstuvwxyz";
     $this->assertEquals(strlen($dest), 36);
     $src = "xxxxx0123456789yyyyyyyyyyyyyyyy";
     blkcpy($dest, 10, $src, 5, 10);
     $this->assertEquals(strlen($dest), 36);
     $this->assertEquals($dest, "01234567890123456789klmnopqrstuvwxyz");
     $dest = "0123456789abcdefghijklmnopqrstuvwxyz";
     $this->assertEquals(strlen($dest), 36);
     $src = "xxxxx0123456789yyyyyyyyyyyyyyyy";
     blkcpy($dest, 0, $src, 0, 10);
     $this->assertEquals(strlen($dest), 36);
     $this->assertEquals($dest, "xxxxx01234abcdefghijklmnopqrstuvwxyz");
 }
Example #2
0
function smix(&$B, $offset, $r, $N, &$V, &$XY)
{
    $X = substr($XY, 0, 128 * $r);
    $Y = substr($XY, 128 * $r);
    blkcpy($X, 0, $B, $offset, 128 * $r);
    for ($i = 0; $i < $N; $i++) {
        blkcpy($V, $i * 128 * $r, $X, 0, 128 * $r);
        blockmix_salsa8($X, $Y, $r);
    }
    for ($i = 0; $i < $N; $i++) {
        $j = integerify($X, $r) & $N - 1;
        blkxor($X, 0, $V, $j * 128 * $r, 128 * $r);
        blockmix_salsa8($X, $Y, $r);
    }
    blkcpy($B, $offset, $X, 0, 128 * $r);
    $XY = $X . $Y;
}