Phalcon\Test\Unit\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';
            $ciphers = ['AES-256-ECB', 'AES-256-CBC', 'AES-256-CFB'];
            $pads = [Crypt::PADDING_ANSI_X_923, Crypt::PADDING_PKCS7, Crypt::PADDING_ISO_10126, Crypt::PADDING_ISO_IEC_7816_4, Crypt::PADDING_ZERO, Crypt::PADDING_SPACE];
            for ($i = 1; $i < 128; ++$i) {
                $texts[] = str_repeat('A', $i);
            }
            $crypt = new Crypt();
            $crypt->setKey(substr($key, 0, 32));
            foreach ($pads as $padding) {
                $crypt->setPadding($padding);
                foreach ($ciphers as $cipher) {
                    $crypt->setCipher($cipher);
                    foreach ($texts as $text) {
                        $encrypted = $crypt->encrypt($text);
                        $actual = $crypt->decrypt($encrypted);
                        expect($actual)->equals($text);
                    }
                }
            }
        });
    }