whole_func_string: function rstrHMACMD5(key, data) {
  	  var i;
  	  var bkey = rstr2binl(key);
  	  var ipad = [];
  	  var opad = [];
  	  var hash;
  	  ipad[15] = opad[15] = undefined;
  
  	  if (bkey.length > 16) {
  	    bkey = binlMD5(bkey, key.length * 8);
  	  }
  
  	  for (i = 0; i < 16; i += 1) {
  	    ipad[i] = bkey[i] ^ 0x36363636;
  	    opad[i] = bkey[i] ^ 0x5c5c5c5c;
  	  }
  
  	  hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
  	  return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
  	}
func_code_string: function rstrHMACMD5(key, data) {
  	  var i;
  	  var bkey = rstr2binl(key);
  	  var ipad = [];
  	  var opad = [];
  	  var hash;
  	  ipad[15] = opad[15] = undefined;
  
  	  if (bkey.length > 16) {
  	    bkey = binlMD5(bkey, key.length * 8);
  	  }
  
  	  for (i = 0; i < 16; i += 1) {
  	    ipad[i] = bkey[i] ^ 0x36363636;
  	    opad[i] = bkey[i] ^ 0x5c5c5c5c;
  	  }
  
  	  hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
  	  return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
  	}
func_documentation_string: /*
  Calculate the HMAC-MD5, of a key and some data (raw strings)