| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- <?php
 
- namespace Aws\Crypto\Cipher;
 
- use \InvalidArgumentException;
 
- use \LogicException;
 
- /**
 
-  * An implementation of the CBC cipher for use with an AesEncryptingStream or
 
-  * AesDecrypting stream.
 
-  *
 
-  * This cipher method is deprecated and in maintenance mode - no new updates will be
 
-  * released. Please see https://docs.aws.amazon.com/general/latest/gr/aws_sdk_cryptography.html
 
-  * for more information.
 
-  *
 
-  * @deprecated
 
-  */
 
- class Cbc implements CipherMethod
 
- {
 
-     const BLOCK_SIZE = 16;
 
-     /**
 
-      * @var string
 
-      */
 
-     private $baseIv;
 
-     /**
 
-      * @var string
 
-      */
 
-     private $iv;
 
-     /**
 
-      * @var int
 
-      */
 
-     private $keySize;
 
-     /**
 
-      * @param string $iv Base Initialization Vector for the cipher.
 
-      * @param int $keySize Size of the encryption key, in bits, that will be
 
-      *                     used.
 
-      *
 
-      * @throws InvalidArgumentException Thrown if the passed iv does not match
 
-      *                                  the iv length required by the cipher.
 
-      */
 
-     public function __construct($iv, $keySize = 256)
 
-     {
 
-         $this->baseIv = $this->iv = $iv;
 
-         $this->keySize = $keySize;
 
-         if (strlen($iv) !== openssl_cipher_iv_length($this->getOpenSslName())) {
 
-             throw new InvalidArgumentException('Invalid initialization vector');
 
-         }
 
-     }
 
-     public function getOpenSslName()
 
-     {
 
-         return "aes-{$this->keySize}-cbc";
 
-     }
 
-     public function getAesName()
 
-     {
 
-         return 'AES/CBC/PKCS5Padding';
 
-     }
 
-     public function getCurrentIv()
 
-     {
 
-         return $this->iv;
 
-     }
 
-     public function requiresPadding()
 
-     {
 
-         return true;
 
-     }
 
-     public function seek($offset, $whence = SEEK_SET)
 
-     {
 
-         if ($offset === 0 && $whence === SEEK_SET) {
 
-             $this->iv = $this->baseIv;
 
-         } else {
 
-             throw new LogicException('CBC initialization only support being'
 
-                 . ' rewound, not arbitrary seeking.');
 
-         }
 
-     }
 
-     public function update($cipherTextBlock)
 
-     {
 
-         $this->iv = substr($cipherTextBlock, self::BLOCK_SIZE * -1);
 
-     }
 
- }
 
 
  |