code: function (cipher, ciphertext, password, cfg) {
              // Apply config defaults
              cfg = this.cfg.extend(cfg);
  
              // Convert string to CipherParams
              ciphertext = this._parse(ciphertext, cfg.format);
  
              // Derive key and other params
              var derivedParams = cfg.kdf.compute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);
  
              // Add IV to config
              cfg.iv = derivedParams.iv;
  
              // Decrypt
              var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
  
              return plaintext;
          }
docs: Decrypts serialized ciphertext using a password.
  
  @param {Cipher} cipher The cipher algorithm to use.
  @param {CipherParams|string} ciphertext The ciphertext to decrypt.
  @param {string} password The password.
  @param {Object} cfg (Optional) The configuration options to use for this operation.
  
  @return {WordArray} The plaintext.
  
  @static
  
  @example
  
  var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
  var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });