diff --git a/phpseclib/Crypt/Hash.php b/phpseclib/Crypt/Hash.php index 2c248eb1..17f17d5e 100644 --- a/phpseclib/Crypt/Hash.php +++ b/phpseclib/Crypt/Hash.php @@ -569,10 +569,10 @@ class Hash // For the last chunk: pad to 32-byte boundary, endian-adjust, // NH hash and add bit-length. Concatenate the result to Y. // - $length = strlen($m[$i]); + $length = count($m) ? strlen($m[$i]) : 0; $pad = 32 - ($length % 32); $pad = max(32, $length + $pad % 32); - $m[$i] = str_pad($m[$i], $pad, "\0"); // zeropad + $m[$i] = str_pad(isset($m[$i]) ? $m[$i] : '', $pad, "\0"); // zeropad $m[$i] = pack('N*', ...unpack('V*', $m[$i])); // ENDIAN-SWAP $y .= static::nh($k, $m[$i], new BigInteger($length * 8));