Phalcon\Test\Legacy\CryptTest::testCryptPadding PHP Method

testCryptPadding() public method

Tests the padding
Since: 2014-10-17
Author: Nikolaos Dimopoulos ([email protected])
public testCryptPadding ( )
    public function testCryptPadding()
    {
        $this->specify("padding not return correct results", function () {
            $texts = [''];
            $key = '0123456789ABCDEF0123456789ABCDEF';
            $modes = [MCRYPT_MODE_ECB, MCRYPT_MODE_CBC, MCRYPT_MODE_CFB];
            $pads = [Crypt::PADDING_ANSI_X_923, Crypt::PADDING_PKCS7];
            for ($i = 1; $i < 128; ++$i) {
                $texts[] = str_repeat('A', $i);
            }
            $crypt = new Crypt();
            $crypt->setCipher(MCRYPT_RIJNDAEL_256)->setKey(substr($key, 0, 16));
            foreach ($pads as $padding) {
                $crypt->setPadding($padding);
                foreach ($modes as $mode) {
                    $crypt->setMode($mode);
                    foreach ($texts as $text) {
                        $encrypted = $crypt->encrypt($text);
                        expect($crypt->decrypt($encrypted))->equals($text);
                    }
                }
            }
        });
    }