Merge branch '3.0'

This commit is contained in:
terrafrost 2023-09-21 15:10:50 -05:00
commit 10e57d6a5e
2 changed files with 30 additions and 3 deletions

View File

@ -798,7 +798,6 @@ class Rijndael extends BlockCipher
// Generating encrypt code: // Generating encrypt code:
$init_encrypt .= ' $init_encrypt .= '
static $tables;
if (empty($tables)) { if (empty($tables)) {
$tables = &$this->getTables(); $tables = &$this->getTables();
} }
@ -855,7 +854,6 @@ class Rijndael extends BlockCipher
// Generating decrypt code: // Generating decrypt code:
$init_decrypt .= ' $init_decrypt .= '
static $invtables;
if (empty($invtables)) { if (empty($invtables)) {
$invtables = &$this->getInvTables(); $invtables = &$this->getInvTables();
} }
@ -912,7 +910,7 @@ class Rijndael extends BlockCipher
$this->inline_crypt = $this->createInlineCryptFunction( $this->inline_crypt = $this->createInlineCryptFunction(
[ [
'init_crypt' => '', 'init_crypt' => 'static $tables; static $invtables;',
'init_encrypt' => $init_encrypt, 'init_encrypt' => $init_encrypt,
'init_decrypt' => $init_decrypt, 'init_decrypt' => $init_decrypt,
'encrypt_block' => $encrypt_block, 'encrypt_block' => $encrypt_block,

View File

@ -385,6 +385,35 @@ abstract class TestCase extends PhpseclibTestCase
$this->assertSame($aes->getKeyLength(), 256); $this->assertSame($aes->getKeyLength(), 256);
} }
public function testInvalidLengthKeyWithAES()
{
$plaintext = str_repeat('x', 16);
$aes = new Crypt_Rijndael();
$aes->setKey(str_repeat('a', 19));
$this->assertSame($aes->getKeyLength(), 160);
$ref = new Crypt_Rijndael();
$ref->setKey(str_repeat('a', 19) . "\0");
$this->assertSame(
bin2hex($aes->encrypt($plaintext)),
bin2hex($ref->encrypt($plaintext)),
'actual and expected value do not match for 168 bit Rijndael'
);
$aes = new Crypt_AES();
$aes->setKey(str_repeat('a', 19));
$this->assertSame($aes->getKeyLength(), 192);
$ref = new Crypt_AES();
$ref->setKey(str_repeat('a', 19) . "\0\0\0\0\0");
$this->assertSame(
bin2hex($aes->encrypt($plaintext)),
bin2hex($ref->encrypt($plaintext)),
'actual and expected value do not match for 168 bit AES'
);
}
/** /**
* @group github938 * @group github938
*/ */