@aws-amplify/core 5.2.1-unstable.eca5078.2 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/lib/Platform/version.d.ts +1 -1
  2. package/lib/Platform/version.js +1 -1
  3. package/lib/Platform/version.js.map +1 -1
  4. package/lib/Signer.d.ts +1 -1
  5. package/lib/Signer.js +59 -256
  6. package/lib/Signer.js.map +1 -1
  7. package/lib/clients/middleware/signing/signer/signatureV4/constants.d.ts +17 -0
  8. package/lib/clients/middleware/signing/signer/signatureV4/constants.js +26 -0
  9. package/lib/clients/middleware/signing/signer/signatureV4/constants.js.map +1 -0
  10. package/lib/clients/middleware/signing/signer/signatureV4/index.d.ts +3 -0
  11. package/lib/clients/middleware/signing/signer/signatureV4/index.js +12 -0
  12. package/lib/clients/middleware/signing/signer/signatureV4/index.js.map +1 -0
  13. package/lib/clients/middleware/signing/signer/signatureV4/index.native.d.ts +4 -0
  14. package/lib/clients/middleware/signing/signer/signatureV4/index.native.js +13 -0
  15. package/lib/clients/middleware/signing/signer/signatureV4/index.native.js.map +1 -0
  16. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.d.ts +9 -0
  17. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js +40 -0
  18. package/lib/clients/middleware/signing/signer/signatureV4/presignUrl.js.map +1 -0
  19. package/lib/clients/middleware/signing/signer/signatureV4/signRequest.d.ts +10 -0
  20. package/lib/clients/middleware/signing/signer/signatureV4/signRequest.js +36 -0
  21. package/lib/clients/middleware/signing/signer/signatureV4/signRequest.js.map +1 -0
  22. package/lib/clients/middleware/signing/signer/signatureV4/types/index.d.ts +1 -0
  23. package/lib/clients/middleware/signing/signer/signatureV4/types/index.js +5 -0
  24. package/lib/clients/middleware/signing/signer/signatureV4/types/index.js.map +1 -0
  25. package/lib/clients/middleware/signing/signer/signatureV4/types/signer.d.ts +20 -0
  26. package/lib/clients/middleware/signing/signer/signatureV4/types/signer.js +5 -0
  27. package/lib/clients/middleware/signing/signer/signatureV4/types/signer.js.map +1 -0
  28. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.d.ts +18 -0
  29. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +35 -0
  30. package/lib/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js.map +1 -0
  31. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.d.ts +12 -0
  32. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +31 -0
  33. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js.map +1 -0
  34. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.d.ts +12 -0
  35. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +39 -0
  36. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js.map +1 -0
  37. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.d.ts +16 -0
  38. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +35 -0
  39. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js.map +1 -0
  40. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.d.ts +10 -0
  41. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +17 -0
  42. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js.map +1 -0
  43. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.d.ts +12 -0
  44. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +18 -0
  45. package/lib/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js.map +1 -0
  46. package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.d.ts +12 -0
  47. package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +22 -0
  48. package/lib/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js.map +1 -0
  49. package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.d.ts +10 -0
  50. package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +35 -0
  51. package/lib/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js.map +1 -0
  52. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.d.ts +13 -0
  53. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +31 -0
  54. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignature.js.map +1 -0
  55. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.d.ts +10 -0
  56. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +20 -0
  57. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js.map +1 -0
  58. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.d.ts +13 -0
  59. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +27 -0
  60. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js.map +1 -0
  61. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.d.ts +11 -0
  62. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +34 -0
  63. package/lib/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js.map +1 -0
  64. package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.d.ts +16 -0
  65. package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +24 -0
  66. package/lib/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js.map +1 -0
  67. package/lib/clients/types/aws.d.ts +2 -0
  68. package/lib/clients/types/aws.js +5 -0
  69. package/lib/clients/types/aws.js.map +1 -0
  70. package/lib/clients/types/core.d.ts +13 -0
  71. package/lib/clients/types/core.js +5 -0
  72. package/lib/clients/types/core.js.map +1 -0
  73. package/lib/clients/types/http.d.ts +26 -0
  74. package/lib/clients/types/http.js +5 -0
  75. package/lib/clients/types/http.js.map +1 -0
  76. package/lib/clients/types/index.d.ts +2 -0
  77. package/lib/clients/types/index.js +5 -0
  78. package/lib/clients/types/index.js.map +1 -0
  79. package/lib-esm/Platform/version.d.ts +1 -1
  80. package/lib-esm/Platform/version.js +1 -1
  81. package/lib-esm/Platform/version.js.map +1 -1
  82. package/lib-esm/Signer.d.ts +1 -1
  83. package/lib-esm/Signer.js +60 -257
  84. package/lib-esm/Signer.js.map +1 -1
  85. package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.d.ts +17 -0
  86. package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js +24 -0
  87. package/lib-esm/clients/middleware/signing/signer/signatureV4/constants.js.map +1 -0
  88. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.d.ts +3 -0
  89. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.js +7 -0
  90. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.js.map +1 -0
  91. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.native.d.ts +4 -0
  92. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.native.js +8 -0
  93. package/lib-esm/clients/middleware/signing/signer/signatureV4/index.native.js.map +1 -0
  94. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.d.ts +9 -0
  95. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js +38 -0
  96. package/lib-esm/clients/middleware/signing/signer/signatureV4/presignUrl.js.map +1 -0
  97. package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.d.ts +10 -0
  98. package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js +34 -0
  99. package/lib-esm/clients/middleware/signing/signer/signatureV4/signRequest.js.map +1 -0
  100. package/lib-esm/clients/middleware/signing/signer/signatureV4/types/index.d.ts +1 -0
  101. package/lib-esm/clients/middleware/signing/signer/signatureV4/types/index.js +3 -0
  102. package/lib-esm/clients/middleware/signing/signer/signatureV4/types/index.js.map +1 -0
  103. package/lib-esm/clients/middleware/signing/signer/signatureV4/types/signer.d.ts +20 -0
  104. package/lib-esm/clients/middleware/signing/signer/signatureV4/types/signer.js +3 -0
  105. package/lib-esm/clients/middleware/signing/signer/signatureV4/types/signer.js.map +1 -0
  106. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.d.ts +18 -0
  107. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js +33 -0
  108. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.js.map +1 -0
  109. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.d.ts +12 -0
  110. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js +29 -0
  111. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.js.map +1 -0
  112. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.d.ts +12 -0
  113. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js +37 -0
  114. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.js.map +1 -0
  115. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.d.ts +16 -0
  116. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js +33 -0
  117. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.js.map +1 -0
  118. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.d.ts +10 -0
  119. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js +15 -0
  120. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.js.map +1 -0
  121. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.d.ts +12 -0
  122. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js +16 -0
  123. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.js.map +1 -0
  124. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.d.ts +12 -0
  125. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js +20 -0
  126. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.js.map +1 -0
  127. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.d.ts +10 -0
  128. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js +33 -0
  129. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.js.map +1 -0
  130. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.d.ts +13 -0
  131. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js +29 -0
  132. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignature.js.map +1 -0
  133. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.d.ts +10 -0
  134. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js +18 -0
  135. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.js.map +1 -0
  136. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.d.ts +13 -0
  137. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js +25 -0
  138. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.js.map +1 -0
  139. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.d.ts +11 -0
  140. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js +32 -0
  141. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.js.map +1 -0
  142. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.d.ts +16 -0
  143. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js +22 -0
  144. package/lib-esm/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.js.map +1 -0
  145. package/lib-esm/clients/types/aws.d.ts +2 -0
  146. package/lib-esm/clients/types/aws.js +3 -0
  147. package/lib-esm/clients/types/aws.js.map +1 -0
  148. package/lib-esm/clients/types/core.d.ts +13 -0
  149. package/lib-esm/clients/types/core.js +3 -0
  150. package/lib-esm/clients/types/core.js.map +1 -0
  151. package/lib-esm/clients/types/http.d.ts +26 -0
  152. package/lib-esm/clients/types/http.js +3 -0
  153. package/lib-esm/clients/types/http.js.map +1 -0
  154. package/lib-esm/clients/types/index.d.ts +2 -0
  155. package/lib-esm/clients/types/index.js +3 -0
  156. package/lib-esm/clients/types/index.js.map +1 -0
  157. package/package.json +6 -2
  158. package/src/Platform/version.ts +1 -1
  159. package/src/Signer.ts +89 -344
  160. package/src/clients/middleware/signing/signer/signatureV4/constants.ts +28 -0
  161. package/src/clients/middleware/signing/signer/signatureV4/index.native.ts +9 -0
  162. package/src/clients/middleware/signing/signer/signatureV4/index.ts +7 -0
  163. package/src/clients/middleware/signing/signer/signatureV4/presignUrl.ts +59 -0
  164. package/src/clients/middleware/signing/signer/signatureV4/signRequest.ts +51 -0
  165. package/src/clients/middleware/signing/signer/signatureV4/types/index.ts +4 -0
  166. package/src/clients/middleware/signing/signer/signatureV4/types/signer.ts +31 -0
  167. package/src/clients/middleware/signing/signer/signatureV4/utils/dataHashHelpers.ts +42 -0
  168. package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalHeaders.ts +25 -0
  169. package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalQueryString.ts +32 -0
  170. package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalRequest.ts +38 -0
  171. package/src/clients/middleware/signing/signer/signatureV4/utils/getCanonicalUri.ts +14 -0
  172. package/src/clients/middleware/signing/signer/signatureV4/utils/getCredentialScope.ts +21 -0
  173. package/src/clients/middleware/signing/signer/signatureV4/utils/getFormattedDates.ts +22 -0
  174. package/src/clients/middleware/signing/signer/signatureV4/utils/getHashedPayload.ts +38 -0
  175. package/src/clients/middleware/signing/signer/signatureV4/utils/getSignature.ts +52 -0
  176. package/src/clients/middleware/signing/signer/signatureV4/utils/getSignedHeaders.ts +19 -0
  177. package/src/clients/middleware/signing/signer/signatureV4/utils/getSigningKey.ts +31 -0
  178. package/src/clients/middleware/signing/signer/signatureV4/utils/getSigningValues.ts +43 -0
  179. package/src/clients/middleware/signing/signer/signatureV4/utils/getStringToSign.ts +28 -0
  180. package/src/clients/types/aws.ts +6 -0
  181. package/src/clients/types/core.ts +17 -0
  182. package/src/clients/types/http.ts +33 -0
  183. package/src/clients/types/index.ts +5 -0
@@ -1 +1 @@
1
- export declare const version = "5.2.1-unstable.eca5078.2+eca5078f9";
1
+ export declare const version = "5.2.1";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // generated by genversion
4
- exports.version = '5.2.1-unstable.eca5078.2+eca5078f9';
4
+ exports.version = '5.2.1';
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/Platform/version.ts"],"names":[],"mappings":";;AAAA,0BAA0B;AACb,QAAA,OAAO,GAAG,oCAAoC,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/Platform/version.ts"],"names":[],"mappings":";;AAAA,0BAA0B;AACb,QAAA,OAAO,GAAG,OAAO,CAAC"}
package/lib/Signer.d.ts CHANGED
@@ -35,7 +35,7 @@ export declare class Signer {
35
35
  *
36
36
  * @returns {object} Signed HTTP request
37
37
  */
38
- static sign(request: any, access_info: any, service_info?: any): any;
38
+ static sign(request: any, accessInfo: any, serviceInfo: any): any;
39
39
  static signUrl(urlToSign: string, accessInfo: any, serviceInfo?: any, expiration?: number): string;
40
40
  static signUrl(request: any, accessInfo: any, serviceInfo?: any, expiration?: number): string;
41
41
  }
package/lib/Signer.js CHANGED
@@ -3,204 +3,11 @@
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  var tslib_1 = require("tslib");
6
- var Logger_1 = require("./Logger");
7
- var sha256_js_1 = require("@aws-crypto/sha256-js");
8
- var util_hex_encoding_1 = require("@aws-sdk/util-hex-encoding");
9
- var url_1 = require("url");
10
6
  var Util_1 = require("./Util");
11
- var logger = new Logger_1.ConsoleLogger('Signer');
12
- var DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256';
7
+ var signatureV4_1 = require("./clients/middleware/signing/signer/signatureV4");
13
8
  var IOT_SERVICE_NAME = 'iotdevicegateway';
14
- var encrypt = function (key, src) {
15
- var hash = new sha256_js_1.Sha256(key);
16
- hash.update(src);
17
- return hash.digestSync();
18
- };
19
- var hash = function (src) {
20
- var arg = src || '';
21
- var hash = new sha256_js_1.Sha256();
22
- hash.update(arg);
23
- return util_hex_encoding_1.toHex(hash.digestSync());
24
- };
25
- /**
26
- * @private
27
- * RFC 3986 compliant version of encodeURIComponent
28
- */
29
- var escape_RFC3986 = function (component) {
30
- return component.replace(/[!'()*]/g, function (c) {
31
- return '%' + c.charCodeAt(0).toString(16).toUpperCase();
32
- });
33
- };
34
- /**
35
- * @private
36
- * Create canonical query string
37
- *
38
- */
39
- var canonical_query = function (query) {
40
- if (!query || query.length === 0) {
41
- return '';
42
- }
43
- return query
44
- .split('&')
45
- .map(function (e) {
46
- var key_val = e.split('=');
47
- if (key_val.length === 1) {
48
- return e;
49
- }
50
- else {
51
- var reencoded_val = escape_RFC3986(key_val[1]);
52
- return key_val[0] + '=' + reencoded_val;
53
- }
54
- })
55
- .sort(function (a, b) {
56
- var key_a = a.split('=')[0];
57
- var key_b = b.split('=')[0];
58
- if (key_a === key_b) {
59
- return a < b ? -1 : 1;
60
- }
61
- else {
62
- return key_a < key_b ? -1 : 1;
63
- }
64
- })
65
- .join('&');
66
- };
67
- /**
68
- * @private
69
- * Create canonical headers
70
- *
71
- <pre>
72
- CanonicalHeaders =
73
- CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN
74
- CanonicalHeadersEntry =
75
- Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\n'
76
- </pre>
77
- */
78
- var canonical_headers = function (headers) {
79
- if (!headers || Object.keys(headers).length === 0) {
80
- return '';
81
- }
82
- return (Object.keys(headers)
83
- .map(function (key) {
84
- return {
85
- key: key.toLowerCase(),
86
- value: headers[key] ? headers[key].trim().replace(/\s+/g, ' ') : '',
87
- };
88
- })
89
- .sort(function (a, b) {
90
- return a.key < b.key ? -1 : 1;
91
- })
92
- .map(function (item) {
93
- return item.key + ':' + item.value;
94
- })
95
- .join('\n') + '\n');
96
- };
97
- /**
98
- * List of header keys included in the canonical headers.
99
- * @access private
100
- */
101
- var signed_headers = function (headers) {
102
- return Object.keys(headers)
103
- .map(function (key) {
104
- return key.toLowerCase();
105
- })
106
- .sort()
107
- .join(';');
108
- };
109
- /**
110
- * @private
111
- * Create canonical request
112
- * Refer to
113
- * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}
114
- *
115
- <pre>
116
- CanonicalRequest =
117
- HTTPRequestMethod + '\n' +
118
- CanonicalURI + '\n' +
119
- CanonicalQueryString + '\n' +
120
- CanonicalHeaders + '\n' +
121
- SignedHeaders + '\n' +
122
- HexEncode(Hash(RequestPayload))
123
- </pre>
124
- */
125
- var canonical_request = function (request) {
126
- var url_info = url_1.parse(request.url);
127
- return [
128
- request.method || '/',
129
- encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'),
130
- canonical_query(url_info.query),
131
- canonical_headers(request.headers),
132
- signed_headers(request.headers),
133
- hash(request.data),
134
- ].join('\n');
135
- };
136
- var parse_service_info = function (request) {
137
- var url_info = url_1.parse(request.url), host = url_info.host;
138
- var matched = host.match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com$/);
139
- var parsed = (matched || []).slice(1, 3);
140
- if (parsed[1] === 'es') {
141
- // Elastic Search
142
- parsed = parsed.reverse();
143
- }
144
- return {
145
- service: request.service || parsed[0],
146
- region: request.region || parsed[1],
147
- };
148
- };
149
- var credential_scope = function (d_str, region, service) {
150
- return [d_str, region, service, 'aws4_request'].join('/');
151
- };
152
- /**
153
- * @private
154
- * Create a string to sign
155
- * Refer to
156
- * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}
157
- *
158
- <pre>
159
- StringToSign =
160
- Algorithm + \n +
161
- RequestDateTime + \n +
162
- CredentialScope + \n +
163
- HashedCanonicalRequest
164
- </pre>
165
- */
166
- var string_to_sign = function (algorithm, canonical_request, dt_str, scope) {
167
- return [algorithm, dt_str, scope, hash(canonical_request)].join('\n');
168
- };
169
- /**
170
- * @private
171
- * Create signing key
172
- * Refer to
173
- * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}
174
- *
175
- <pre>
176
- kSecret = your secret access key
177
- kDate = HMAC("AWS4" + kSecret, Date)
178
- kRegion = HMAC(kDate, Region)
179
- kService = HMAC(kRegion, Service)
180
- kSigning = HMAC(kService, "aws4_request")
181
- </pre>
182
- */
183
- var get_signing_key = function (secret_key, d_str, service_info) {
184
- logger.debug(service_info);
185
- var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');
186
- return k_signing;
187
- };
188
- var get_signature = function (signing_key, str_to_sign) {
189
- return util_hex_encoding_1.toHex(encrypt(signing_key, str_to_sign));
190
- };
191
- /**
192
- * @private
193
- * Create authorization header
194
- * Refer to
195
- * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}
196
- */
197
- var get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {
198
- return [
199
- algorithm + ' ' + 'Credential=' + access_key + '/' + scope,
200
- 'SignedHeaders=' + signed_headers,
201
- 'Signature=' + signature,
202
- ].join(', ');
203
- };
9
+ // Best practice regex to parse the service and region from an AWS endpoint
10
+ var AWS_ENDPOINT_REGEX = /([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(.cn)?$/;
204
11
  var Signer = /** @class */ (function () {
205
12
  function Signer() {
206
13
  }
@@ -240,78 +47,74 @@ var Signer = /** @class */ (function () {
240
47
  *
241
48
  * @returns {object} Signed HTTP request
242
49
  */
243
- Signer.sign = function (request, access_info, service_info) {
244
- if (service_info === void 0) { service_info = null; }
50
+ Signer.sign = function (request, accessInfo, serviceInfo) {
245
51
  request.headers = request.headers || {};
246
52
  if (request.body && !request.data) {
247
53
  throw new Error('The attribute "body" was found on the request object. Please use the attribute "data" instead.');
248
54
  }
249
- // datetime string and date string
250
- var dt = Util_1.DateUtils.getDateWithClockOffset(), dt_str = dt.toISOString().replace(/[:\-]|\.\d{3}/g, ''), d_str = dt_str.substr(0, 8);
251
- var url_info = url_1.parse(request.url);
252
- request.headers['host'] = url_info.host;
253
- request.headers['x-amz-date'] = dt_str;
254
- if (access_info.session_token) {
255
- request.headers['X-Amz-Security-Token'] = access_info.session_token;
256
- }
257
- // Task 1: Create a Canonical Request
258
- var request_str = canonical_request(request);
259
- logger.debug(request_str);
260
- // Task 2: Create a String to Sign
261
- var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope);
262
- // Task 3: Calculate the Signature
263
- var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign);
264
- // Task 4: Adding the Signing information to the Request
265
- var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature);
266
- request.headers['Authorization'] = authorization_header;
267
- return request;
55
+ var requestToSign = tslib_1.__assign(tslib_1.__assign({}, request), { body: request.data, url: new URL(request.url) });
56
+ var options = getOptions(requestToSign, accessInfo, serviceInfo);
57
+ var signedRequest = signatureV4_1.signRequest(requestToSign, options);
58
+ // Prior to using `signRequest`, Signer accepted urls as strings and outputted urls as string. Coerce the property
59
+ // back to a string so as not to disrupt consumers of Signer.
60
+ signedRequest.url = signedRequest.url.toString();
61
+ // HTTP headers should be case insensitive but, to maintain parity with the previous Signer implementation and
62
+ // limit the impact of this implementation swap, replace lowercased headers with title cased ones.
63
+ signedRequest.headers.Authorization = signedRequest.headers.authorization;
64
+ signedRequest.headers['X-Amz-Security-Token'] =
65
+ signedRequest.headers['x-amz-security-token'];
66
+ delete signedRequest.headers.authorization;
67
+ delete signedRequest.headers['x-amz-security-token'];
68
+ return signedRequest;
268
69
  };
269
70
  Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {
270
71
  var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;
271
72
  var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';
272
73
  var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;
273
- var now = Util_1.DateUtils.getDateWithClockOffset()
274
- .toISOString()
275
- .replace(/[:\-]|\.\d{3}/g, '');
276
- var today = now.substr(0, 8);
277
- // Intentionally discarding search
278
- var _a = url_1.parse(urlToSign, true, true), search = _a.search, parsedUrl = tslib_1.__rest(_a, ["search"]);
279
- var host = parsedUrl.host;
280
- var signedHeaders = { host: host };
281
- var _b = serviceInfo || parse_service_info({ url: url_1.format(parsedUrl) }), region = _b.region, service = _b.service;
282
- var credentialScope = credential_scope(today, region, service);
283
- // IoT service does not allow the session token in the canonical request
284
- // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html
285
- var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME;
286
- var queryParams = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired
287
- ? { 'X-Amz-Security-Token': "" + accessInfo.session_token }
288
- : {})), (expiration ? { 'X-Amz-Expires': "" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') });
289
- var canonicalRequest = canonical_request({
74
+ var presignable = {
75
+ body: body,
290
76
  method: method,
291
- url: url_1.format(tslib_1.__assign(tslib_1.__assign({}, parsedUrl), { query: tslib_1.__assign(tslib_1.__assign({}, parsedUrl.query), queryParams) })),
292
- headers: signedHeaders,
293
- data: body,
294
- });
295
- var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope);
296
- var signing_key = get_signing_key(accessInfo.secret_key, today, {
297
- region: region,
298
- service: service,
299
- });
300
- var signature = get_signature(signing_key, stringToSign);
301
- var additionalQueryParams = tslib_1.__assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && {
302
- 'X-Amz-Security-Token': accessInfo.session_token,
303
- }));
304
- var result = url_1.format({
305
- protocol: parsedUrl.protocol,
306
- slashes: true,
307
- hostname: parsedUrl.hostname,
308
- port: parsedUrl.port,
309
- pathname: parsedUrl.pathname,
310
- query: tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, parsedUrl.query), queryParams), additionalQueryParams),
311
- });
312
- return result;
77
+ url: new URL(urlToSign),
78
+ };
79
+ var options = getOptions(presignable, accessInfo, serviceInfo, expiration);
80
+ var signedUrl = signatureV4_1.presignUrl(presignable, options);
81
+ if (accessInfo.session_token &&
82
+ !sessionTokenRequiredInSigning(options.signingService)) {
83
+ signedUrl.searchParams.append(signatureV4_1.TOKEN_QUERY_PARAM, accessInfo.session_token);
84
+ }
85
+ return signedUrl.toString();
313
86
  };
314
87
  return Signer;
315
88
  }());
316
89
  exports.Signer = Signer;
90
+ var getOptions = function (request, accessInfo, serviceInfo, expiration) {
91
+ var _a = accessInfo !== null && accessInfo !== void 0 ? accessInfo : {}, access_key = _a.access_key, secret_key = _a.secret_key, session_token = _a.session_token;
92
+ var _b = parseServiceInfo(request.url), urlRegion = _b.region, urlService = _b.service;
93
+ var _c = serviceInfo !== null && serviceInfo !== void 0 ? serviceInfo : {}, _d = _c.region, region = _d === void 0 ? urlRegion : _d, _e = _c.service, service = _e === void 0 ? urlService : _e;
94
+ var credentials = tslib_1.__assign({ accessKeyId: access_key, secretAccessKey: secret_key }, (sessionTokenRequiredInSigning(service)
95
+ ? { sessionToken: session_token }
96
+ : {}));
97
+ return tslib_1.__assign({ credentials: credentials, signingDate: Util_1.DateUtils.getDateWithClockOffset(), signingRegion: region, signingService: service }, (expiration && { expiration: expiration }));
98
+ };
99
+ // TODO: V6 investigate whether add to custom clients' general signer implementation.
100
+ var parseServiceInfo = function (url) {
101
+ var _a;
102
+ var host = url.host;
103
+ var matched = (_a = host.match(AWS_ENDPOINT_REGEX)) !== null && _a !== void 0 ? _a : [];
104
+ var parsed = matched.slice(1, 3);
105
+ if (parsed[1] === 'es') {
106
+ // Elastic Search
107
+ parsed = parsed.reverse();
108
+ }
109
+ return {
110
+ service: parsed[0],
111
+ region: parsed[1],
112
+ };
113
+ };
114
+ // IoT service does not allow the session token in the canonical request
115
+ // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html
116
+ // TODO: V6 investigate whether add to custom clients' general signer implementation.
117
+ var sessionTokenRequiredInSigning = function (service) {
118
+ return service !== IOT_SERVICE_NAME;
119
+ };
317
120
  //# sourceMappingURL=Signer.js.map
package/lib/Signer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,+BAAmC;AACnC,+EAIyD;AAEzD,IAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,2EAA2E;AAC3E,IAAM,kBAAkB,GAAG,gDAAgD,CAAC;AAE5E;IAAA;IAoHA,CAAC;IAnHA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmCK;IACE,WAAI,GAAX,UAAY,OAAO,EAAE,UAAU,EAAE,WAAW;QAC3C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAExC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAClC,MAAM,IAAI,KAAK,CACd,gGAAgG,CAChG,CAAC;SACF;QAED,IAAM,aAAa,yCACf,OAAO,KACV,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,GAAG,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAa,CAAC,GACnC,CAAC;QAEF,IAAM,OAAO,GAAG,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,IAAM,aAAa,GAAQ,yBAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC/D,kHAAkH;QAClH,6DAA6D;QAC7D,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjD,8GAA8G;QAC9G,kGAAkG;QAClG,aAAa,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;QAC1E,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAC5C,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3C,OAAO,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACrD,OAAO,aAAa,CAAC;IACtB,CAAC;IAcM,cAAO,GAAd,UACC,YAA0B,EAC1B,UAAe,EACf,WAAiB,EACjB,UAAmB;QAEnB,IAAM,SAAS,GACd,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QACpE,IAAM,MAAM,GACX,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,IAAM,IAAI,GACT,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAElE,IAAM,WAAW,GAAG;YACnB,IAAI,MAAA;YACJ,MAAM,QAAA;YACN,GAAG,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC;SACvB,CAAC;QAEF,IAAM,OAAO,GAAG,UAAU,CACzB,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,CACV,CAAC;QACF,IAAM,SAAS,GAAG,wBAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,IACC,UAAU,CAAC,aAAa;YACxB,CAAC,6BAA6B,CAAC,OAAO,CAAC,cAAc,CAAC,EACrD;YACD,SAAS,CAAC,YAAY,CAAC,MAAM,CAC5B,+BAAiB,EACjB,UAAU,CAAC,aAAa,CACxB,CAAC;SACF;QACD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACF,aAAC;AAAD,CAAC,AApHD,IAoHC;AApHY,wBAAM;AAsHnB,IAAM,UAAU,GAAG,UAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAW;IAC1D,IAAA,mEAA4D,EAA1D,0BAAU,EAAE,0BAAU,EAAE,gCAAkC,CAAC;IAC7D,IAAA,kCAEL,EAFO,qBAAiB,EAAE,uBAE1B,CAAC;IACI,IAAA,sEAAgE,EAA9D,cAAkB,EAAlB,uCAAkB,EAAE,eAAoB,EAApB,yCAA0C,CAAC;IACvE,IAAM,WAAW,sBAChB,WAAW,EAAE,UAAU,EACvB,eAAe,EAAE,UAAU,IACxB,CAAC,6BAA6B,CAAC,OAAO,CAAC;QACzC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE;QACjC,CAAC,CAAC,EAAE,CAAC,CACN,CAAC;IACF,0BACC,WAAW,aAAA,EACX,WAAW,EAAE,gBAAS,CAAC,sBAAsB,EAAE,EAC/C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,OAAO,IACpB,CAAC,UAAU,IAAI,EAAE,UAAU,YAAA,EAAE,CAAC,EAChC;AACH,CAAC,CAAC;AAEF,qFAAqF;AACrF,IAAM,gBAAgB,GAAG,UAAC,GAAQ;;IACjC,IAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAM,OAAO,SAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,mCAAI,EAAE,CAAC;IACrD,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QACvB,iBAAiB;QACjB,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;KAC1B;IAED,OAAO;QACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;KACjB,CAAC;AACH,CAAC,CAAC;AAEF,wEAAwE;AACxE,oFAAoF;AACpF,qFAAqF;AACrF,IAAM,6BAA6B,GAAG,UAAC,OAAe;IACrD,OAAA,OAAO,KAAK,gBAAgB;AAA5B,CAA4B,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";
2
+ export declare const AMZ_DATE_QUERY_PARAM = "X-Amz-Date";
3
+ export declare const CREDENTIAL_QUERY_PARAM = "X-Amz-Credential";
4
+ export declare const EXPIRES_QUERY_PARAM = "X-Amz-Expires";
5
+ export declare const REGION_SET_PARAM = "X-Amz-Region-Set";
6
+ export declare const SIGNATURE_QUERY_PARAM = "X-Amz-Signature";
7
+ export declare const SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders";
8
+ export declare const TOKEN_QUERY_PARAM = "X-Amz-Security-Token";
9
+ export declare const AUTH_HEADER = "authorization";
10
+ export declare const HOST_HEADER = "host";
11
+ export declare const AMZ_DATE_HEADER: string;
12
+ export declare const TOKEN_HEADER: string;
13
+ export declare const KEY_TYPE_IDENTIFIER = "aws4_request";
14
+ export declare const SHA256_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256";
15
+ export declare const SIGNATURE_IDENTIFIER = "AWS4";
16
+ export declare const EMPTY_HASH = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
17
+ export declare const UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD";
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ // query params
6
+ exports.ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm';
7
+ exports.AMZ_DATE_QUERY_PARAM = 'X-Amz-Date';
8
+ exports.CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential';
9
+ exports.EXPIRES_QUERY_PARAM = 'X-Amz-Expires';
10
+ exports.REGION_SET_PARAM = 'X-Amz-Region-Set';
11
+ exports.SIGNATURE_QUERY_PARAM = 'X-Amz-Signature';
12
+ exports.SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders';
13
+ exports.TOKEN_QUERY_PARAM = 'X-Amz-Security-Token';
14
+ // headers
15
+ exports.AUTH_HEADER = 'authorization';
16
+ exports.HOST_HEADER = 'host';
17
+ exports.AMZ_DATE_HEADER = exports.AMZ_DATE_QUERY_PARAM.toLowerCase();
18
+ exports.TOKEN_HEADER = exports.TOKEN_QUERY_PARAM.toLowerCase();
19
+ // identifiers
20
+ exports.KEY_TYPE_IDENTIFIER = 'aws4_request';
21
+ exports.SHA256_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256';
22
+ exports.SIGNATURE_IDENTIFIER = 'AWS4';
23
+ // preset values
24
+ exports.EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
25
+ exports.UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD';
26
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../src/clients/middleware/signing/signer/signatureV4/constants.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,eAAe;AACF,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,oBAAoB,GAAG,YAAY,CAAC;AACpC,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAC5C,QAAA,mBAAmB,GAAG,eAAe,CAAC;AACtC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,0BAA0B,GAAG,qBAAqB,CAAC;AACnD,QAAA,iBAAiB,GAAG,sBAAsB,CAAC;AAExD,UAAU;AACG,QAAA,WAAW,GAAG,eAAe,CAAC;AAC9B,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,eAAe,GAAG,4BAAoB,CAAC,WAAW,EAAE,CAAC;AACrD,QAAA,YAAY,GAAG,yBAAiB,CAAC,WAAW,EAAE,CAAC;AAE5D,cAAc;AACD,QAAA,mBAAmB,GAAG,cAAc,CAAC;AACrC,QAAA,2BAA2B,GAAG,kBAAkB,CAAC;AACjD,QAAA,oBAAoB,GAAG,MAAM,CAAC;AAE3C,gBAAgB;AACH,QAAA,UAAU,GACtB,kEAAkE,CAAC;AACvD,QAAA,gBAAgB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { signRequest } from './signRequest';
2
+ export { presignUrl } from './presignUrl';
3
+ export { TOKEN_QUERY_PARAM } from './constants';
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ // TODO: V6 replace Signer
6
+ var signRequest_1 = require("./signRequest");
7
+ exports.signRequest = signRequest_1.signRequest;
8
+ var presignUrl_1 = require("./presignUrl");
9
+ exports.presignUrl = presignUrl_1.presignUrl;
10
+ var constants_1 = require("./constants");
11
+ exports.TOKEN_QUERY_PARAM = constants_1.TOKEN_QUERY_PARAM;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/clients/middleware/signing/signer/signatureV4/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,0BAA0B;AAC1B,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,yCAAgD;AAAvC,wCAAA,iBAAiB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import 'react-native-url-polyfill/auto';
2
+ export { signRequest } from './signRequest';
3
+ export { presignUrl } from './presignUrl';
4
+ export { TOKEN_QUERY_PARAM } from './constants';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ require("react-native-url-polyfill/auto");
6
+ // TODO: V6 replace Signer
7
+ var signRequest_1 = require("./signRequest");
8
+ exports.signRequest = signRequest_1.signRequest;
9
+ var presignUrl_1 = require("./presignUrl");
10
+ exports.presignUrl = presignUrl_1.presignUrl;
11
+ var constants_1 = require("./constants");
12
+ exports.TOKEN_QUERY_PARAM = constants_1.TOKEN_QUERY_PARAM;
13
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.js","sourceRoot":"","sources":["../../../../../../src/clients/middleware/signing/signer/signatureV4/index.native.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC,0CAAwC;AAExC,0BAA0B;AAC1B,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,yCAAgD;AAAvC,wCAAA,iBAAiB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { Presignable, PresignUrlOptions } from './types';
2
+ /**
3
+ * Given a `Presignable` object, returns a Signature Version 4 presigned `URL` object.
4
+ *
5
+ * @param presignable `Presignable` object containing at least a url to be presigned with authentication query params.
6
+ * @param presignUrlOptions `PresignUrlOptions` object containing values used to construct the signature.
7
+ * @returns A `URL` with authentication query params which can grant temporary access to AWS resources.
8
+ */
9
+ export declare const presignUrl: ({ body, method, url }: Presignable, { expiration, ...options }: PresignUrlOptions) => URL;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ var tslib_1 = require("tslib");
6
+ var constants_1 = require("./constants");
7
+ var getSigningValues_1 = require("./utils/getSigningValues");
8
+ var getSignature_1 = require("./utils/getSignature");
9
+ /**
10
+ * Given a `Presignable` object, returns a Signature Version 4 presigned `URL` object.
11
+ *
12
+ * @param presignable `Presignable` object containing at least a url to be presigned with authentication query params.
13
+ * @param presignUrlOptions `PresignUrlOptions` object containing values used to construct the signature.
14
+ * @returns A `URL` with authentication query params which can grant temporary access to AWS resources.
15
+ */
16
+ exports.presignUrl = function (_a, _b) {
17
+ var _c, _d, _e, _f;
18
+ var body = _a.body, _g = _a.method, method = _g === void 0 ? 'GET' : _g, url = _a.url;
19
+ var expiration = _b.expiration, options = tslib_1.__rest(_b, ["expiration"]);
20
+ var signingValues = getSigningValues_1.getSigningValues(options);
21
+ var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;
22
+ // create the request to sign
23
+ // @ts-ignore URL constructor accepts a URL object
24
+ var presignedUrl = new URL(url);
25
+ Object.entries(tslib_1.__assign(tslib_1.__assign((_c = {}, _c[constants_1.ALGORITHM_QUERY_PARAM] = constants_1.SHA256_ALGORITHM_IDENTIFIER, _c[constants_1.CREDENTIAL_QUERY_PARAM] = accessKeyId + "/" + credentialScope, _c[constants_1.AMZ_DATE_QUERY_PARAM] = longDate, _c[constants_1.SIGNED_HEADERS_QUERY_PARAM] = constants_1.HOST_HEADER, _c), (expiration && (_d = {}, _d[constants_1.EXPIRES_QUERY_PARAM] = expiration.toString(), _d))), (sessionToken && (_e = {}, _e[constants_1.TOKEN_QUERY_PARAM] = sessionToken, _e)))).forEach(function (_a) {
26
+ var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1];
27
+ presignedUrl.searchParams.append(key, value);
28
+ });
29
+ var requestToSign = {
30
+ body: body,
31
+ headers: (_f = {}, _f[constants_1.HOST_HEADER] = url.host, _f),
32
+ method: method,
33
+ url: presignedUrl,
34
+ };
35
+ // calculate and add the signature to the url
36
+ var signature = getSignature_1.getSignature(requestToSign, signingValues);
37
+ presignedUrl.searchParams.append(constants_1.SIGNATURE_QUERY_PARAM, signature);
38
+ return presignedUrl;
39
+ };
40
+ //# sourceMappingURL=presignUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presignUrl.js","sourceRoot":"","sources":["../../../../../../src/clients/middleware/signing/signer/signatureV4/presignUrl.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAGtC,yCAUqB;AACrB,6DAA4D;AAC5D,qDAAoD;AAEpD;;;;;;GAMG;AACU,QAAA,UAAU,GAAG,UACzB,EAA0C,EAC1C,EAA6C;;QAD3C,cAAI,EAAE,cAAc,EAAd,mCAAc,EAAE,YAAG;IACzB,IAAA,0BAAU,EAAE,4CAAU;IAExB,IAAM,aAAa,GAAG,mCAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAA,uCAAW,EAAE,+CAAe,EAAE,iCAAQ,EAAE,yCAAY,CAC7C;IAEf,6BAA6B;IAC7B,kDAAkD;IAClD,IAAM,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,OAAO,gDACZ,iCAAqB,IAAG,uCAA2B,KACnD,kCAAsB,IAAM,WAAW,SAAI,eAAiB,KAC5D,gCAAoB,IAAG,QAAQ,KAC/B,sCAA0B,IAAG,uBAAW,OACtC,CAAC,UAAU,cAAM,GAAC,+BAAmB,IAAG,UAAU,CAAC,QAAQ,EAAE,KAAE,CAAC,GAChE,CAAC,YAAY,cAAM,GAAC,6BAAiB,IAAG,YAAY,KAAE,CAAC,EACzD,CAAC,OAAO,CAAC,UAAC,EAAY;YAAZ,0BAAY,EAAX,WAAG,EAAE,aAAK;QACtB,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,IAAM,aAAa,GAAG;QACrB,IAAI,MAAA;QACJ,OAAO,YAAI,GAAC,uBAAW,IAAG,GAAG,CAAC,IAAI,KAAE;QACpC,MAAM,QAAA;QACN,GAAG,EAAE,YAAY;KACjB,CAAC;IAEF,6CAA6C;IAC7C,IAAM,SAAS,GAAG,2BAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7D,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,iCAAqB,EAAE,SAAS,CAAC,CAAC;IAEnE,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { HttpRequest } from '../../../../types';
2
+ import { SignRequestOptions } from './types/signer';
3
+ /**
4
+ * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.
5
+ *
6
+ * @param request `HttpRequest` to be signed.
7
+ * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.
8
+ * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.
9
+ */
10
+ export declare const signRequest: (request: HttpRequest, options: SignRequestOptions) => HttpRequest;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ var tslib_1 = require("tslib");
6
+ var getSignedHeaders_1 = require("./utils/getSignedHeaders");
7
+ var getSigningValues_1 = require("./utils/getSigningValues");
8
+ var constants_1 = require("./constants");
9
+ var getSignature_1 = require("./utils/getSignature");
10
+ /**
11
+ * Given a `HttpRequest`, returns a Signature Version 4 signed `HttpRequest`.
12
+ *
13
+ * @param request `HttpRequest` to be signed.
14
+ * @param signRequestOptions `SignRequestOptions` object containing values used to construct the signature.
15
+ * @returns A `HttpRequest` with authentication headers which can grant temporary access to AWS resources.
16
+ */
17
+ exports.signRequest = function (request, options) {
18
+ var signingValues = getSigningValues_1.getSigningValues(options);
19
+ var accessKeyId = signingValues.accessKeyId, credentialScope = signingValues.credentialScope, longDate = signingValues.longDate, sessionToken = signingValues.sessionToken;
20
+ // create the request to sign
21
+ var headers = tslib_1.__assign({}, request.headers);
22
+ headers[constants_1.HOST_HEADER] = request.url.host;
23
+ headers[constants_1.AMZ_DATE_HEADER] = longDate;
24
+ if (sessionToken) {
25
+ headers[constants_1.TOKEN_HEADER] = sessionToken;
26
+ }
27
+ var requestToSign = tslib_1.__assign(tslib_1.__assign({}, request), { headers: headers });
28
+ // calculate and add the signature to the request
29
+ var signature = getSignature_1.getSignature(requestToSign, signingValues);
30
+ var credentialEntry = "Credential=" + accessKeyId + "/" + credentialScope;
31
+ var signedHeadersEntry = "SignedHeaders=" + getSignedHeaders_1.getSignedHeaders(headers);
32
+ var signatureEntry = "Signature=" + signature;
33
+ headers[constants_1.AUTH_HEADER] = constants_1.SHA256_ALGORITHM_IDENTIFIER + " " + credentialEntry + ", " + signedHeadersEntry + ", " + signatureEntry;
34
+ return requestToSign;
35
+ };
36
+ //# sourceMappingURL=signRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signRequest.js","sourceRoot":"","sources":["../../../../../../src/clients/middleware/signing/signer/signatureV4/signRequest.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAItC,6DAA4D;AAC5D,6DAA4D;AAC5D,yCAMqB;AACrB,qDAAoD;AAEpD;;;;;;GAMG;AACU,QAAA,WAAW,GAAG,UAC1B,OAAoB,EACpB,OAA2B;IAE3B,IAAM,aAAa,GAAG,mCAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAA,uCAAW,EAAE,+CAAe,EAAE,iCAAQ,EAAE,yCAAY,CAC7C;IAEf,6BAA6B;IAC7B,IAAM,OAAO,wBAAQ,OAAO,CAAC,OAAO,CAAE,CAAC;IACvC,OAAO,CAAC,uBAAW,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxC,OAAO,CAAC,2BAAe,CAAC,GAAG,QAAQ,CAAC;IACpC,IAAI,YAAY,EAAE;QACjB,OAAO,CAAC,wBAAY,CAAC,GAAG,YAAY,CAAC;KACrC;IACD,IAAM,aAAa,yCAAQ,OAAO,KAAE,OAAO,SAAA,GAAE,CAAC;IAE9C,iDAAiD;IACjD,IAAM,SAAS,GAAG,2BAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAM,eAAe,GAAG,gBAAc,WAAW,SAAI,eAAiB,CAAC;IACvE,IAAM,kBAAkB,GAAG,mBAAiB,mCAAgB,CAAC,OAAO,CAAG,CAAC;IACxE,IAAM,cAAc,GAAG,eAAa,SAAW,CAAC;IAChD,OAAO,CACN,uBAAW,CACX,GAAM,uCAA2B,SAAI,eAAe,UAAK,kBAAkB,UAAK,cAAgB,CAAC;IAElG,OAAO,aAAa,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export { Presignable, PresignUrlOptions, SignRequestOptions } from './signer';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=index.js.map