3 * The CBC (Cipher Block Chaining) mode implementation
7 * @category PHPCryptLib
10 * @author Anthony Ferrara <ircmaxell@ircmaxell.com>
11 * @copyright 2011 The Authors
12 * @license http://www.opensource.org/licenses/mit-license.html MIT License
13 * @version Build @@version@@
16 namespace CryptLib\Cipher\Block\Mode
;
19 * The CBC (Cipher Block Chaining) mode implementation
21 * @category PHPCryptLib
24 * @author Anthony Ferrara <ircmaxell@ircmaxell.com>
27 class CBC
extends \CryptLib\Cipher\Block\AbstractMode
{
30 * Decrypt the data using the supplied key, cipher
32 * @param string $data The data to decrypt
34 * @return string The decrypted data
36 protected function decryptBlock($data) {
37 $stub = $this->cipher
->decryptBlock($data);
38 $result = $stub ^
$this->state
;
44 * Encrypt the data using the supplied key, cipher
46 * @param string $data The data to encrypt
48 * @return string The encrypted data
50 protected function encryptBlock($data) {
51 $stub = $this->cipher
->encryptBlock($data ^
$this->state
);