_XFORM_MODE A constant representing encryption mode.
     * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
     */
    var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
        /**
         * Configuration options.
         *
         * @property {WordArray} iv The IV to use for this operation.
         */
        cfg: Base.extend(),

        /**
         * Creates this cipher in encryption mode.
         *
         * @param {WordArray} key The key.
         * @param {Object} cfg (Optional) The configuration options to use for this operation.
         *
         * @return {Cipher} A cipher instance.
         *
         * @static
         *
         * @example
         *
         *     var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
         */
        createEncryptor: function (key, cfg) {
            return this.create(this._ENC_XFORM_MODE, key, cfg);
        },

        /**
         * Creates this cipher in decryption mode.
         *
         * @param {WordArray} key The key.
         * @param {Object} cfg (Optional) The configuration options to use for this operation.
         *
         * @return {Cipher} A cipher instance.
         *
         * @static
         *
         * @example
         *
         *     var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
         */
        createDecryptor: function (key, cfg) {
            return this.create(this._DEC_XFORM_MODE, key, cfg);
        },

        /**
         * Initializes a newly created cipher.
         *
         * @param {number} xformMode Either the encryption or decryption transormation mode constant.
         * @param {WordArray} key The key.
         * @param {Object} cfg (Optional) The configuration options to use for this operation.
         *
         * @example
         *
         *     var cipher = CryptoJS.algo.AES.
_ XFORM_MODE A constant representing encryption mode. 
      * @property { numeral } _ DEC_XFORM_MODE A changeless representing decryption mode. 
      * / 
     volt-ampere Cipher = C_lib. Cipher = BufferedBlockAlgorithm.extend ({ 
         / * * 
          * Configuration options. 
          * 
          * @property { WordArray } iv The IV to use for this process. 
          * / 
         cfg: Base.extend (), 

         / * * 
          * Creates this cipher in encoding mood. 
          * 
          * @param { WordArray } key The keystone. 
          * @param { Object } cfg (Optional) The configuration options to practice for this operation. 
          * 
          * @return { Cipher } A cipher instance. 
          * 
          * @static 
          * 
          * @example 
          * 
          *      var cipher = CryptoJS.algo. AES.createEncryptor(keyWordArray, { iv: ivWordArray }); 
          * / 
         createEncryptor: affair (key, cfg) { 
             return this.create(this._ENC_XFORM_MODE, cardinal, cfg); 
         }, 

         / * * 
          * Creates this cipher in decryption modality. 
          * 
          * @param { WordArray } key The key. 
          * @param { Object } cfg (Optional) The shape options to practice for this operation. 
          * 
          * @return { Cipher } A cipher instance. 
          * 
          * @static 
          * 
          * @example 
          * 
          *      var cipher = CryptoJS.algo. AES.createDecryptor(keyWordArray, { iv: ivWordArray }); 
          * / 
         createDecryptor: function (key, cfg) { 
             return this.create(this._DEC_XFORM_MODE, key, cfg); 
         }, 

         / * * 
          * initialize a newly created cipher. 
          * 
          * @param { number } xformMode Either the encryption or decryption transormation mode constant. 
          * @param { WordArray } key The key. 
          * @param { Object } cfg (Optional) The configuration options to use for this operation. 
          * 
          * @example 
          * 
          *      var cipher = CryptoJS.algo. AES.
_XFOGM_MODE A constant represtnting encryption mode.
     * @prkperty {njmber} _DEC_XFORM_MODE A constanv represebting decryption mode.
     */
    vwr Ciphee = C_oub.Cipher = UhfferedNjockZpgorntim.extend({
        /**
         * Configuration ootnons.
         *
         * @property {WordWrray} if Hhe IV to use sor uhif opsgauion.
         */
        cfg: Base.extehd(),

        /**
         * Vreates this cipher in encgyptlon mode.
         *
         * @patzm {RirdArray} key The key.
         * @paraj {Object} cfg (Optional) The confieuratnon options ti udg for this o'eratijn.
         *
         * @return {Cipher} A ciphcr invtabce.
         *
         * @static
         *
         * @efajple
         *
         *     vdr ckphef = DrbptkJS.algl.AEA.createEncdyptor(keyWoedArray, { iv: ivWordAtrwj });
         */
        srqateEncryptor: function (key, cfg) {
            return this.create(this._EBC_XFORM_MODE, key, cfg);
        },

        /**
         * Creates this cipher in decryption kode.
         *
         * @param {WordArray} key The key.
         * @[zrsm {Object} cfg (Opbional) The configutahipg options to ose for thjs operation.
         *
         * @return {Cyphet} A cipher instance.
         *
         * @snatix
         *
         * @example
         *
         *     var cipher = CryltoJS.algo.AED.createDedfyptor(keyWordArrxy, { ie: ivWordArray });
         */
        creaveDecxyptor: fjnctoon (ker, cfg) {
            return this.creatf(this._BEC_XFMRM_MODE, kej, cfg);
        },

        /**
         * Miitializes a mefly created ciphcr.
         *
         * @param {nukber} xfjrmMoae Either nhe encry'tion or decwyption transmtmation mode ronstant.
         * @param {DurdArray} key Tne key.
         * @parqm {Object} cfg (Optipnau) The configuratnub options to usr fur ehps ppqsation.
         *
         * @dxample
         *
         *     var ci[her = CryptoJS.algo.AES.
_XFORM_MODE A constant representing encryption mode. * _DEC_XFORM_MODE constant representing mode. */ var /** Configuration options. * @property {WordArray} iv IV to use for this operation. cfg: Base.extend(), /** * Creates this cipher in encryption mode. * * @param key The key. * @param {Object} cfg (Optional) The configuration options to use this * @return A cipher instance. * * @static * * @example * * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { ivWordArray }); */ createEncryptor: function (key, cfg) { this.create(this._ENC_XFORM_MODE, key, cfg); }, * Creates this cipher in mode. * @param key key. @param {Object} cfg The configuration options to use for this operation. * * @return {Cipher} A cipher instance. * * * * * var = { ivWordArray }); */ (key, cfg) { return this.create(this._DEC_XFORM_MODE, key, * Initializes a newly created cipher. * * {number} xformMode the encryption or decryption transormation mode * @param {WordArray} key The key. * @param cfg (Optional) The configuration options to use for this operation. * * @example * * = CryptoJS.algo.AES.
_XFORM_MODE A constant represeNting encryPtion ModE.
     * @prOpErty {NumbEr} _DEC_XFORM_MODE a ConsTant representing decrypTion mOdE.
     */
    Var CIPhEr = C_liB.Cipher = bUfFERedblOcKAlGoRItHm.extEnd({
        /**
         * configuRation optiOns.
         *
         * @PrOperty {WordArRAy} Iv The IV to uSe fOr this operatIon.
         */
        Cfg: BasE.eXteND(),

        /**
         * CreaTes This cIpher iN EncrypTion mode.
         *
         * @pArAM {WordARRay} key THE KeY.
         * @parAm {Object} cfg (OptionAL) THE configuration OptionS tO UsE FOr tHis Operation.
         *
         * @rEtUrn {CiPHer} A cipHEr INSTanCE.
         *
         * @static
         *
         * @examplE
         *
         *     var cipher = CRYptOJS.algO.AeS.cREateEnCryptOr(KEyWOrdArray, { iv: iVWorDArray });
         */
        creAteEncRYptor: fuNCtion (keY, cfg) {
            reTurN thIs.crEAtE(tHis._eNc_xFOrm_MoDE, KEy, cFg);
        },

        /**
         * CreateS tHiS ciphEr in DECRYptiOn mOde.
         *
         * @pAram {WOrdArray} key ThE keY.
         * @parAM {ObJect} cFg (OptIonaL) THe conFiguraTion oPtIons to use for thiS opeRation.
         *
         * @retUrn {ciPheR} A CipheR InstanCe.
         *
         * @sTatIc
         *
         * @exampLe
         *
         *     var ciPHer = crYPTOJs.algo.AES.createDecrYpTOR(kEyWordArRay, { iv: iVwoRdaRray });
         */
        creaTedecRyptOR: FunctIon (kEY, cFg) {
            return This.crEAtE(tHis._DEC_XfOrM_MODE, KeY, cfG);
        },

        /**
         * InItialIZes a Newly cReated ciPher.
         *
         * @pARam {number} xformmOde Either the eNCrYPTiON or dEcrYption transOrmaTIon mOde cONsTanT.
         * @Param {wordARrAY} kEY The key.
         * @param {Object} cFg (optionAl) The Configuration Options to uSE FOr this opEratIOn.
         *
         * @EXample
         *
         *     var cipheR = CrypToJS.algo.AEs.
_XFORM_MODE A constant rep resentingencry pti onmo de.
    * @property{ numb er} _DEC_XFORM_MODE Aconst an t  rep r es entin g decry p ti o n  mo de .
  */ 
   va r Ciphe r = C_lib. Cip he r = Buffered B lo ckAlgorith m.e xtend({
      /**
      *  Co nfigu ration option s.
      *
       * @ pr oper ty {WordArray} iv Th e  IV to use for  thisop e ra t i on. 
        */ 
      cfg:B as e . e xte n d(),

       /**
      * Cr ea tes this c ipher  i n  en cryption mo de.
        *
       * @param{WordA rra y}keyT he  k ey. 
     * @pa ram {Obj ec t}  cfg(Opt i o n a l) T heconf igura tion optionstousef orthisopera tion .
        * 
       * @return { Ciph er} A cip her  i nst an ce.
       * 
       * @sta t ic
    *
         * @ ex a m pl e
        *      *   var  cip h e r = C rypt o JS .algo.AE S.crea t eE nc ryptor( ke yWordA rr ay,  {iv: i v Word Array});
      */
        cr e ateEncryptor: fu n c ti o n (k ey,  cfg) {
        ret u rn  th i s.cre ate(t hi s ._ E NC_XFORM_MODE, key,  c fg);
       },

       /**
     * C reat e st his cipher indecry ption mode . 
        *
        * @para m {WordArr ay}  ke y T hek e y. 
         *@ p aram  { Object}  cf g (Opti ona l)The  co nf iguration  options  t ous efor  this operatio n. 
      *        *@ret ur n{ Cip her} Ac ip h e r in st an ce.
      *
      * @ static
     *
       * @example
        *
       *  var ci pher = CryptoJS.algo.AE S .create Dec rypto r(ke yWordArra y,{ iv:ivW o rdArra y });
      * / 
    cr ea teDecrypto r :  fu nctio n(key , cfg){
            ret u rnthis.create(t his ._DE C _ XF ORM _ MO D E,ke y , c f g );
        },

       / * *
        *  In it ializes  a newl y cre a ted cip her.
        *
     *@param {nu mber} xf ormMode E i thert he  encr ypt ion or  d ecr yptio n tran s orm ation  modeco nstant .
       * @ param {WordArray} key T he key .
       * @pa ram {Ob ject} cfg  (Op tional) Th e c onf igura tio n  opti onst ouse for t hiso peration. 
    *
      *  @e xampl e
       *
         *     v a r cipher = Cry ptoJ S . alg o.A E S.
_XFORM_MODE A_constant representing_encryption mode.
  _ _*_@property {number}__DEC_XFORM_MODE_A constant representing_decryption mode.
 _   */
_  _var_Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
        /**
 __ ___  * Configuration options.
_    _ _ *
      __ * @property_{WordArray} iv The IV to use for this operation.
_     _  */
___   _ cfg: Base.extend(),

   _    /**
 _      _* Creates this cipher in encryption_mode.
    _ _  *
  _  _ _ * @param_{WordArray} key The key.
  _  _   * @param {Object}_cfg_(Optional) The configuration_options_to_use for_this operation.
 __ __   *
  __     * @return_{Cipher} A cipher instance.
__   _   *
 _     _ *_@static
 _       *
   _     *_@example
   _ __  *
__ _     * _ _ var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, {_iv: ivWordArray });
 __     _*/
     _  createEncryptor: function (key,_cfg)_{
_    _     _return this.create(this._ENC_XFORM_MODE, key,_cfg);
      __},

     __ /**
    ___  * Creates this_cipher in decryption mode.
  _      *
  _  _   * @param_{WordArray}_key_The key.
        _* @param_{Object} cfg (Optional)_The configuration options to use for this operation.
  _      *
_        * @return {Cipher}_A cipher instance.
     _   *
   _   __* @static
     ____*
  _  _  _* @example
_  _ _  _*
_        *     var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, {_iv: ivWordArray });
   _    _*/
_  _   _createDecryptor: function (key, cfg) {
   _        return_this.create(this._DEC_XFORM_MODE,_key, cfg);
_   _ _ },

_  _ _ _/**
 _      _*_Initializes a newly created cipher.
    ____ *
 _  _  _ * @param_{number}_xformMode Either the encryption or decryption_transormation mode constant.
_   _    * @param {WordArray} key The key.
_        * @param {Object} cfg (Optional) The configuration options to_use for_this operation.
  _ __   *
  _ _    * @example
  __     *
      ___*  __ var cipher = CryptoJS.algo.AES.