aws-data-lake-sdk
Version:
SDK for interacting with the AWS Data Lake Solution..
34 lines (24 loc) • 1.13 kB
JavaScript
;
let Base64 = require('js-base64').Base64;
let moment = require('moment');
let crypto = require('crypto');
class Credentials {
constructor(config) {
this._accessKey = config.accessKey;
this._secretAccessKey = config.secretAccessKey;
this._apiEndpointHost = config.apiEndpointHost;
}
getAuthSignature() {
// 'SJxiAV_R:f10e347df150638393502dfc8466d18b'
let kDate = crypto.createHmac('sha256', "DATALAKE4" + this._secretAccessKey)
.update(moment().utc().format('YYYYMMDD'));
let kEndpoint = crypto.createHmac('sha256', kDate.digest('base64')).update(this._apiEndpointHost);
let kService = crypto.createHmac('sha256', kEndpoint.digest('base64')).update('datalake');
let kSigning = crypto.createHmac('sha256', kService.digest('base64')).update("datalake4_request");
let _signature = kSigning.digest('base64');
let _apiKey = [this._accessKey, _signature].join(':');
let _authKey = Base64.encode(_apiKey);
return _authKey;
}
}
module.exports = Credentials;