Uname: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
Software: Apache
PHP version: 5.6.40 [ PHP INFO ] PHP os: Linux
Server Ip: 217.160.0.194
Your Ip: 216.73.216.55
User: u72294154 (9179942) | Group: ftpusers (600)
Safe Mode: OFF
Disable Function:
NONE

name : CTRTest.php
<?php

class Vectors_Cipher_Block_Mode_CTRTest extends PHPUnit_Framework_TestCase {


    public static function provideTestEncryptVectors() {
        $file = \CryptLibTest\getTestDataFile('Vectors/aes-ctr.test-vectors');
        $nessie = new CryptLibTest\lib\VectorParser\NESSIE($file);
        $data = $nessie->getVectors();
        $ciphers = array();
        foreach ($data as $vector) {
            if (!isset($ciphers[$vector['mode']])) {
                $ciphers[$vector['mode']] = array(array());
            }
            $ciphers[$vector['mode']][0][] = array(
                $vector['mode'],
                $vector['key'],
                $vector['iv'],
                strtoupper($vector['plain']),
                strtoupper($vector['cipher']),
            );
        }
        return $ciphers;
    }

    /**
     * @dataProvider provideTestEncryptVectors
     * @group Vectors
     */
    public function testEncrypt(array $vectors) {
        list ($cipher, $key, $iv) = $vectors[0];

        $cipher = new \CryptLib\Cipher\Block\Cipher\AES($cipher);
        $cipher->setKey(pack('H*', $key));
        $mode = new \CryptLib\Cipher\Block\Mode\CTR($cipher, pack('H*', $iv));
        foreach ($vectors as $vector) {
            list (,,, $data, $expected) = $vector;
            $enc = $mode->encrypt(pack('H*', $data));
            $this->assertEquals($expected, strtoupper(bin2hex($enc)));
        }
    }

    /**
     * @dataProvider provideTestEncryptVectors
     * @group Vectors
     */
    public function testDecrypt(array $vectors) {
        list ($cipher, $key, $iv) = $vectors[0];
        $cipher = new \CryptLib\Cipher\Block\Cipher\AES($cipher);
        $cipher->setKey(pack('H*', $key));
        $mode = new \CryptLib\Cipher\Block\Mode\CTR($cipher, pack('H*', $iv));
        foreach ($vectors as $vector) {
            list (,,, $data, $expected) = $vector;
            $dec = $mode->decrypt(pack('H*', $data));
            $dec .= $mode->finish();
            $this->assertEquals($expected, strtoupper(bin2hex($dec)));
        }
    }


}
© 2026 GrazzMean