rem: this.separatorArray_ = this.base64_.arrayifyString(this.separator_); 
add: this.separatorArray_ = Array.map(this.separator_, function(c) { return c.charCodeAt(0); }); 
context: function PROT_UrlCrypto() {  this.debugZone = "urlcrypto";  this.hasher_ = new G_CryptoHasher();  this.base64_ = new G_Base64();  this.streamCipher_ = Cc["@mozilla.org/security/streamcipher;1"]                       .createInstance(Ci.nsIStreamCipher);  if (!this.manager_) {    // Create a UrlCryptoKeyManager to reads keys from profile directory if    // one doesn't already exist.  UrlCryptoKeyManager puts a reference to    // itself on PROT_UrlCrypto.prototype (this also prevents garbage    // collection).    new PROT_UrlCryptoKeyManager();  }  // Convenience properties  this.VERSION = PROT_UrlCrypto.VERSION;  this.RC4_DISCARD_BYTES = PROT_UrlCrypto.RC4_DISCARD_BYTES;  this.VERSION_QUERY_PARAM_NAME = PROT_UrlCrypto.QPS.VERSION_QUERY_PARAM_NAME;  this.ENCRYPTED_PARAMS_PARAM_NAME =     PROT_UrlCrypto.QPS.ENCRYPTED_PARAMS_PARAM_NAME;  this.COUNT_QUERY_PARAM_NAME = PROT_UrlCrypto.QPS.COUNT_QUERY_PARAM_NAME;  this.WRAPPEDKEY_QUERY_PARAM_NAME =     PROT_UrlCrypto.QPS.WRAPPEDKEY_QUERY_PARAM_NAME;  // Properties for computing macs  this.macer_ = new G_CryptoHasher(); // don't use hasher_  this.macInitialized_ = false;  // Separator to prevent leakage between key and data when computing mac  this.separator_ = ":coolgoog:";  this.separatorArray_ = this.base64_.arrayifyString(this.separator_);}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8395/44234495a88a1b404b5a2f7df040cd826f36c07f/url-crypto.js/buggy/toolkit/components/url-classifier/content/url-crypto.js