phpseclib\Crypt\Twofish::_encryptBlock PHP Method

_encryptBlock() public method

Encrypts a block
public _encryptBlock ( string $in ) : string
$in string
return string
    function _encryptBlock($in)
    {
        $S0 = $this->S0;
        $S1 = $this->S1;
        $S2 = $this->S2;
        $S3 = $this->S3;
        $K = $this->K;
        $in = unpack("V4", $in);
        $R0 = $K[0] ^ $in[1];
        $R1 = $K[1] ^ $in[2];
        $R2 = $K[2] ^ $in[3];
        $R3 = $K[3] ^ $in[4];
        $ki = 7;
        while ($ki < 39) {
            $t0 = $S0[$R0 & 0xff] ^ $S1[$R0 >> 8 & 0xff] ^ $S2[$R0 >> 16 & 0xff] ^ $S3[$R0 >> 24 & 0xff];
            $t1 = $S0[$R1 >> 24 & 0xff] ^ $S1[$R1 & 0xff] ^ $S2[$R1 >> 8 & 0xff] ^ $S3[$R1 >> 16 & 0xff];
            $R2 ^= $t0 + $t1 + $K[++$ki];
            $R2 = $R2 >> 1 & 0x7fffffff | $R2 << 31;
            $R3 = ($R3 >> 31 & 1 | $R3 << 1) ^ $t0 + ($t1 << 1) + $K[++$ki];
            $t0 = $S0[$R2 & 0xff] ^ $S1[$R2 >> 8 & 0xff] ^ $S2[$R2 >> 16 & 0xff] ^ $S3[$R2 >> 24 & 0xff];
            $t1 = $S0[$R3 >> 24 & 0xff] ^ $S1[$R3 & 0xff] ^ $S2[$R3 >> 8 & 0xff] ^ $S3[$R3 >> 16 & 0xff];
            $R0 ^= $t0 + $t1 + $K[++$ki];
            $R0 = $R0 >> 1 & 0x7fffffff | $R0 << 31;
            $R1 = ($R1 >> 31 & 1 | $R1 << 1) ^ $t0 + ($t1 << 1) + $K[++$ki];
        }
        // @codingStandardsIgnoreStart
        return pack("V4", $K[4] ^ $R2, $K[5] ^ $R3, $K[6] ^ $R0, $K[7] ^ $R1);
        // @codingStandardsIgnoreEnd
    }