code: function parseDigest(digest) {
      if (!digest)
          return false;
      // protect against missing data
      var needed_parts = {"nonce": 1, "nc": 1, "cnonce": 1, "qop": 1,
          "username": 1, "uri": 1, "response": 1};
      var data = {};
  
      digest.replace(/(\w+)=(?:(?:")([^"]+)"|([^\s,]+))/g, function(m, m1, m2, m3) {
          data[m1] = m2 ? m2 : m3;
          delete needed_parts[m1];
          return m;
      });
  
      return Object.keys(needed_parts).length ? false : data;
  }
docs: Parses the different pieces of the digest string into an array.
  
  This method returns false if an incomplete digest was supplied
  
  @param {String} digest
  @return mixed