Exemplo n.º 1
0
 public function test_salsa20_loop_20()
 {
     $ary = array(0x61707865, 0x4030201, 0x8070605, 0xc0b0a09, 0x100f0e0d, 0x3320646e, 0x1040103, 0x6020905, 0x7, 0x0, 0x79622d32, 0x14131211, 0x18171615, 0x1c1b1a19, 0x201f1e1d, 0x6b206574);
     salsa20_loop($ary, 20);
     $expected = array(0x58318d3e, 0x292df4f, 0xa28d8215, 0xa1aca723, 0x697a34c7, 0xf2f00ba8, 0x63e9b0a1, 0x27250e3a, 0xb1c7f1f3, 0x62066edc, 0x66d3ccf1, 0xb0365cf3, 0x91ad09e, 0x64f0c40f, 0xd60d95ea, 0xbe78c9);
     $this->assertEquals($expected, $ary);
 }
Exemplo n.º 2
0
function salsa20(&$B32, $rounds)
{
    // copy
    $x = array_values($B32);
    /*
        $x = array();
        for ($i = 0; $i < 16; $i++) {
           $x[] = $B32[$i];
        }
    */
    salsa20_loop($x, $rounds);
    //  original values + new stuff
    for ($i = 0; $i < 16; $i++) {
        $B32[$i] = $B32[$i] + $x[$i] & 0xffffffff;
        //uint32_add($B32[$i], $x[$i]);
    }
}