public function testEncryptDecrypt()
{
$sec = new TSecurityManager();
$sec->init(null);
// loop through different string size
$testText = md5('a text (not) full of entrophy');
for ($i = 1; $i < strlen($testText); $i++) {
$sec->setEncryptionKey('aKey');
$plainText = substr($testText, 0, $i);
try {
$encrypted = $sec->encrypt($plainText);
} catch (TNotSupportedException $e) {
self::markTestSkipped('mcrypt extension not loaded');
return;
}
$decrypted = $sec->decrypt($encrypted);
// the decrypted string is padded with \0
$decrypted = strstr($decrypted, "", TRUE);
self::assertEquals($plainText, $decrypted);
// try change key
$sec->setEncryptionKey('anotherKey');
self::assertNotEquals($plainText, $sec->decrypt($encrypted));
}
}