From c8281dd4a37d9b731a2e274103e72b365f9f4568 Mon Sep 17 00:00:00 2001 From: terrafrost Date: Sat, 13 Dec 2014 15:00:38 -0600 Subject: [PATCH] Tests (DES): disable padding for decryption test When padding is enabled $des->decrypt() will return false with ciphertext's of invalid length. Which makes sense. Null padding doesn't work when padding is enabled because 0 isn't a valid PKCS7 padding character (has to be between 1 and the block_length, inclusive). --- tests/Unit/Crypt/DES.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/Unit/Crypt/DES.php b/tests/Unit/Crypt/DES.php index cf35fc6e..56810bbe 100644 --- a/tests/Unit/Crypt/DES.php +++ b/tests/Unit/Crypt/DES.php @@ -18,12 +18,18 @@ class Unit_Crypt_DES_TestCase extends PhpseclibTestCase $des->setIV('d'); $des->setPreferredEngine(CRYPT_ENGINE_INTERNAL); + + $result = pack('H*', '3e7613642049af1e'); + $internal = $des->encrypt('d'); + if (!$this->assertEquals($result, $internal)) { + $this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result'); + } $des->setPreferredEngine(CRYPT_ENGINE_MCRYPT); if ($des->getEngine() == CRYPT_ENGINE_MCRYPT) { $mcrypt = $des->encrypt('d'); - $this->assertEquals($internal, $mcrypt, 'Failed asserting that the internal and mcrypt engines produce identical results'); + $this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result'); } else { self::markTestSkipped('Unable to initialize mcrypt engine'); } @@ -31,7 +37,7 @@ class Unit_Crypt_DES_TestCase extends PhpseclibTestCase $des->setPreferredEngine(CRYPT_ENGINE_OPENSSL); if ($des->getEngine() == CRYPT_ENGINE_OPENSSL) { $openssl = $des->encrypt('d'); - $this->assertEquals($internal, $openssl, 'Failed asserting that the internal and OpenSSL engines produce identical results'); + $this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result'); } else { self::markTestSkipped('Unable to initialize OpenSSL engine'); } @@ -43,6 +49,7 @@ class Unit_Crypt_DES_TestCase extends PhpseclibTestCase public function testDecryptPadding() { $des = new Crypt_DES(CRYPT_MODE_CBC); + $des->disablePadding(); // when the key and iv are not specified they should be null padded //$des->setKey(); //$des->setIV();