123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- var AWS = require('../core');
- var inherit = AWS.util.inherit;
- /**
- * @api private
- */
- AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {
- addAuthorization: function addAuthorization(credentials, date) {
- if (!date) date = AWS.util.date.getDate();
- var r = this.request;
- r.params.Timestamp = AWS.util.date.iso8601(date);
- r.params.SignatureVersion = '2';
- r.params.SignatureMethod = 'HmacSHA256';
- r.params.AWSAccessKeyId = credentials.accessKeyId;
- if (credentials.sessionToken) {
- r.params.SecurityToken = credentials.sessionToken;
- }
- delete r.params.Signature; // delete old Signature for re-signing
- r.params.Signature = this.signature(credentials);
- r.body = AWS.util.queryParamsToString(r.params);
- r.headers['Content-Length'] = r.body.length;
- },
- signature: function signature(credentials) {
- return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');
- },
- stringToSign: function stringToSign() {
- var parts = [];
- parts.push(this.request.method);
- parts.push(this.request.endpoint.host.toLowerCase());
- parts.push(this.request.pathname());
- parts.push(AWS.util.queryParamsToString(this.request.params));
- return parts.join('\n');
- }
- });
- /**
- * @api private
- */
- module.exports = AWS.Signers.V2;
|