= 0; $j--) $tk[$j] = $k[$j]; $r = 0; $t = 0; for($j = 0; ($j < $kc) && ($r < $rounds + 1); ) { for(; ($j < $kc) && ($t < 4); $j++, $t++) { $keySched[$r][$t] = $tk[$j]; } if($t == 4) { $r++; $t = 0; } } while($r < $rounds + 1) { $temp = $tk[$kc - 1]; $tk[0] ^= $S[GPG_Utility::B1($temp)] | ($S[GPG_Utility::B2($temp)] << 0x8) | ($S[GPG_Utility::B3($temp)] << 0x10) | ($S[GPG_Utility::B0($temp)] << 0x18); $tk[0] ^= $RCON[$rconpointer++]; if ($kc != 8) { for($j = 1; $j < $kc; $j++) $tk[$j] ^= $tk[$j - 1]; } else { for($j = 1; $j < $kc / 2; $j++) $tk[$j] ^= $tk[$j - 1]; $temp = $tk[$kc / 2 - 1]; $tk[$kc / 2] ^= $S[GPG_Utility::B0($temp)] | ($S[GPG_Utility::B1($temp)] << 0x8) | ($S[GPG_Utility::B2($temp)] << 0x10) | ($S[GPG_Utility::B3($temp)] << 0x18); for($j = $kc / 2 + 1; $j < $kc; $j++) $tk[$j] ^= $tk[$j - 1]; } for($j = 0; ($j < $kc) && ($r < $rounds + 1); ) { for(; ($j < $kc) && ($t < 4); $j++, $t++) { $keySched[$r][$t] = $tk[$j]; } if($t == 4) { $r++; $t = 0; } } } $this->rounds = $rounds; $this->rk = $keySched; return $this; } } ?>