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

View File

@ -385,6 +385,35 @@ abstract class TestCase extends PhpseclibTestCase
$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
*/