gamerocket
Version:
Gamerocket NodeJS Client Library
49 lines (38 loc) • 1.4 kB
JavaScript
(function() {
var Encryption, Utility, base64, crypto, querystring;
crypto = require('crypto');
querystring = require('querystring');
base64 = require('base64');
Utility = require('./utility').Utility;
Encryption = (function() {
function Encryption() {}
Encryption.sign = function(method, url, parameters, secretKey) {
var array_key, base_string, key, obj_param_sorted, qs, to_sha256, value, _i, _len;
base_string = method + "&" + encodeURIComponent(url.toLowerCase()) + "&";
qs = "";
if (!Utility.objectIsEmpty(parameters)) {
obj_param_sorted = {};
array_key = [];
for (key in parameters) {
value = parameters[key];
array_key.push(key);
}
array_key = array_key.sort();
for (_i = 0, _len = array_key.length; _i < _len; _i++) {
key = array_key[_i];
obj_param_sorted[key] = parameters[key];
}
for (key in obj_param_sorted) {
value = obj_param_sorted[key];
value = encodeURIComponent(value);
}
qs = querystring.stringify(obj_param_sorted);
}
base_string += encodeURIComponent(qs);
to_sha256 = crypto.createHash("sha256").update(base_string + secretKey).digest("hex");
return base64.encode(to_sha256);
};
return Encryption;
})();
exports.Encryption = Encryption;
}).call(this);