git-off

Log

Files

Refs

README

v2.js (1292B)

     1 var AWS = require('../core');
     2 var inherit = AWS.util.inherit;
     3 
     4 /**
     5  * @api private
     6  */
     7 AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {
     8   addAuthorization: function addAuthorization(credentials, date) {
     9 
    10     if (!date) date = AWS.util.date.getDate();
    11 
    12     var r = this.request;
    13 
    14     r.params.Timestamp = AWS.util.date.iso8601(date);
    15     r.params.SignatureVersion = '2';
    16     r.params.SignatureMethod = 'HmacSHA256';
    17     r.params.AWSAccessKeyId = credentials.accessKeyId;
    18 
    19     if (credentials.sessionToken) {
    20       r.params.SecurityToken = credentials.sessionToken;
    21     }
    22 
    23     delete r.params.Signature; // delete old Signature for re-signing
    24     r.params.Signature = this.signature(credentials);
    25 
    26     r.body = AWS.util.queryParamsToString(r.params);
    27     r.headers['Content-Length'] = r.body.length;
    28   },
    29 
    30   signature: function signature(credentials) {
    31     return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');
    32   },
    33 
    34   stringToSign: function stringToSign() {
    35     var parts = [];
    36     parts.push(this.request.method);
    37     parts.push(this.request.endpoint.host.toLowerCase());
    38     parts.push(this.request.pathname());
    39     parts.push(AWS.util.queryParamsToString(this.request.params));
    40     return parts.join('\n');
    41   }
    42 
    43 });
    44 
    45 module.exports = AWS.Signers.V2;