@cdklabs/cdk-ecs-codedeploy 0.0.39 → 0.0.40
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.
- package/.jsii +3 -3
- package/lib/api-canary/index.js +1 -1
- package/lib/ecs-appspec/index.js +1 -1
- package/lib/ecs-deployment/index.js +1 -1
- package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
- package/node_modules/@aws-crypto/ie11-detection/CHANGELOG.md +9 -33
- package/node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.d.ts +5 -5
- package/node_modules/@aws-crypto/ie11-detection/package.json +2 -2
- package/node_modules/@aws-crypto/sha256-browser/CHANGELOG.md +28 -52
- package/node_modules/@aws-crypto/sha256-browser/README.md +11 -0
- package/node_modules/@aws-crypto/sha256-browser/build/constants.js +1 -1
- package/node_modules/@aws-crypto/sha256-browser/build/constants.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.d.ts +4 -3
- package/node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js +6 -2
- package/node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.d.ts +4 -2
- package/node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js +14 -10
- package/node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-browser/build/index.js +2 -2
- package/node_modules/@aws-crypto/sha256-browser/build/index.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js +1 -1
- package/node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.d.ts +5 -3
- package/node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js +15 -9
- package/node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-browser/package.json +8 -7
- package/node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts +9 -4
- package/node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts +22 -16
- package/node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts +24 -17
- package/node_modules/@aws-crypto/sha256-js/CHANGELOG.md +28 -48
- package/node_modules/@aws-crypto/sha256-js/README.md +11 -0
- package/node_modules/@aws-crypto/sha256-js/build/RawSha256.js +1 -1
- package/node_modules/@aws-crypto/{sha256-browser/node_modules/@aws-crypto/sha256-js → sha256-js}/build/RawSha256.js.map +0 -0
- package/node_modules/@aws-crypto/sha256-js/build/constants.js +1 -1
- package/node_modules/@aws-crypto/{sha256-browser/node_modules/@aws-crypto/sha256-js → sha256-js}/build/constants.js.map +0 -0
- package/node_modules/@aws-crypto/sha256-js/build/index.js +2 -2
- package/node_modules/@aws-crypto/{sha256-browser/node_modules/@aws-crypto/sha256-js → sha256-js}/build/index.js.map +0 -0
- package/node_modules/@aws-crypto/sha256-js/build/jsSha256.d.ts +6 -4
- package/node_modules/@aws-crypto/sha256-js/build/jsSha256.js +24 -19
- package/node_modules/@aws-crypto/sha256-js/build/jsSha256.js.map +1 -0
- package/node_modules/@aws-crypto/sha256-js/build/knownHashes.fixture.js +1 -1
- package/node_modules/@aws-crypto/{sha256-browser/node_modules/@aws-crypto/sha256-js → sha256-js}/build/knownHashes.fixture.js.map +0 -0
- package/node_modules/@aws-crypto/sha256-js/package.json +5 -4
- package/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts +31 -23
- package/node_modules/@aws-crypto/supports-web-crypto/CHANGELOG.md +9 -33
- package/node_modules/@aws-crypto/supports-web-crypto/package.json +2 -2
- package/node_modules/@aws-crypto/util/CHANGELOG.md +12 -29
- package/node_modules/@aws-crypto/util/package.json +3 -3
- package/node_modules/@aws-sdk/abort-controller/package.json +2 -2
- package/node_modules/@aws-sdk/client-codedeploy/dist-cjs/protocols/Aws_json1_1.js +2 -2
- package/node_modules/@aws-sdk/client-codedeploy/dist-es/protocols/Aws_json1_1.js +2 -2
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/CodeDeployClient.d.ts +3 -3
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/CodeDeployClient.d.ts +2 -1
- package/node_modules/@aws-sdk/client-codedeploy/package.json +32 -32
- package/node_modules/@aws-sdk/client-sso/dist-types/SSOClient.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/SSOClient.d.ts +2 -1
- package/node_modules/@aws-sdk/client-sso/package.json +28 -28
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/SSOOIDCClient.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sso-oidc/dist-types/ts3.4/SSOOIDCClient.d.ts +2 -1
- package/node_modules/@aws-sdk/client-sso-oidc/package.json +28 -28
- package/node_modules/@aws-sdk/client-sts/dist-types/STSClient.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/STSClient.d.ts +2 -1
- package/node_modules/@aws-sdk/client-sts/package.json +31 -31
- package/node_modules/@aws-sdk/config-resolver/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-imds/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-node/package.json +10 -10
- package/node_modules/@aws-sdk/credential-provider-process/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/fetch-http-handler/package.json +5 -5
- package/node_modules/@aws-sdk/hash-node/dist-cjs/index.js +10 -2
- package/node_modules/@aws-sdk/hash-node/dist-es/index.js +10 -2
- package/node_modules/@aws-sdk/hash-node/dist-types/index.d.ts +6 -3
- package/node_modules/@aws-sdk/hash-node/dist-types/ts3.4/index.d.ts +6 -3
- package/node_modules/@aws-sdk/hash-node/package.json +3 -2
- package/node_modules/@aws-sdk/invalid-dependency/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-content-length/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-endpoint/package.json +7 -7
- package/node_modules/@aws-sdk/middleware-host-header/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-logger/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-retry/package.json +7 -7
- package/node_modules/@aws-sdk/middleware-sdk-sts/dist-types/index.d.ts +2 -2
- package/node_modules/@aws-sdk/middleware-sdk-sts/dist-types/ts3.4/index.d.ts +2 -1
- package/node_modules/@aws-sdk/middleware-sdk-sts/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-serde/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-signing/dist-types/configurations.d.ts +3 -3
- package/node_modules/@aws-sdk/middleware-signing/dist-types/ts3.4/configurations.d.ts +3 -2
- package/node_modules/@aws-sdk/middleware-signing/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-stack/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +4 -4
- package/node_modules/@aws-sdk/node-config-provider/package.json +4 -4
- package/node_modules/@aws-sdk/node-http-handler/package.json +5 -5
- package/node_modules/@aws-sdk/property-provider/package.json +2 -2
- package/node_modules/@aws-sdk/protocol-http/package.json +2 -2
- package/node_modules/@aws-sdk/querystring-builder/package.json +2 -2
- package/node_modules/@aws-sdk/querystring-parser/package.json +2 -2
- package/node_modules/@aws-sdk/service-error-classification/package.json +2 -2
- package/node_modules/@aws-sdk/shared-ini-file-loader/package.json +2 -2
- package/node_modules/@aws-sdk/signature-v4/dist-cjs/SignatureV4.js +4 -3
- package/node_modules/@aws-sdk/signature-v4/dist-cjs/credentialDerivation.js +2 -1
- package/node_modules/@aws-sdk/signature-v4/dist-cjs/getPayloadHash.js +2 -1
- package/node_modules/@aws-sdk/signature-v4/dist-es/SignatureV4.js +4 -3
- package/node_modules/@aws-sdk/signature-v4/dist-es/credentialDerivation.js +2 -1
- package/node_modules/@aws-sdk/signature-v4/dist-es/getPayloadHash.js +2 -1
- package/node_modules/@aws-sdk/signature-v4/dist-types/SignatureV4.d.ts +3 -3
- package/node_modules/@aws-sdk/signature-v4/dist-types/credentialDerivation.d.ts +2 -2
- package/node_modules/@aws-sdk/signature-v4/dist-types/getPayloadHash.d.ts +2 -2
- package/node_modules/@aws-sdk/signature-v4/dist-types/ts3.4/SignatureV4.d.ts +3 -2
- package/node_modules/@aws-sdk/signature-v4/dist-types/ts3.4/credentialDerivation.d.ts +6 -2
- package/node_modules/@aws-sdk/signature-v4/dist-types/ts3.4/getPayloadHash.d.ts +6 -2
- package/node_modules/@aws-sdk/signature-v4/package.json +6 -5
- package/node_modules/@aws-sdk/smithy-client/package.json +3 -3
- package/node_modules/@aws-sdk/token-providers/package.json +5 -5
- package/node_modules/@aws-sdk/types/dist-types/checksum.d.ts +9 -0
- package/node_modules/@aws-sdk/types/dist-types/crypto.d.ts +2 -0
- package/node_modules/@aws-sdk/types/dist-types/stream.d.ts +2 -1
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/checksum.d.ts +4 -0
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/stream.d.ts +2 -1
- package/node_modules/@aws-sdk/types/package.json +1 -1
- package/node_modules/@aws-sdk/url-parser/package.json +3 -3
- package/node_modules/@aws-sdk/util-defaults-mode-browser/package.json +4 -4
- package/node_modules/@aws-sdk/util-defaults-mode-node/package.json +7 -7
- package/node_modules/@aws-sdk/util-endpoints/package.json +2 -2
- package/node_modules/@aws-sdk/util-middleware/package.json +2 -2
- package/node_modules/@aws-sdk/util-retry/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +4 -4
- package/node_modules/{@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js → @aws-sdk/util-utf8}/LICENSE +1 -1
- package/node_modules/@aws-sdk/util-utf8/README.md +4 -0
- package/node_modules/@aws-sdk/util-utf8/dist-cjs/fromUtf8.browser.js +5 -0
- package/node_modules/@aws-sdk/util-utf8/dist-cjs/fromUtf8.js +9 -0
- package/node_modules/@aws-sdk/util-utf8/dist-cjs/index.js +6 -0
- package/node_modules/@aws-sdk/util-utf8/dist-cjs/toUint8Array.js +14 -0
- package/node_modules/@aws-sdk/util-utf8/dist-cjs/toUtf8.browser.js +5 -0
- package/node_modules/@aws-sdk/util-utf8/dist-cjs/toUtf8.js +6 -0
- package/node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.browser.js +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-es/fromUtf8.js +5 -0
- package/node_modules/@aws-sdk/util-utf8/dist-es/index.js +3 -0
- package/node_modules/@aws-sdk/util-utf8/dist-es/toUint8Array.js +10 -0
- package/node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.browser.js +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-es/toUtf8.js +2 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/fromUtf8.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/fromUtf8.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/index.d.ts +3 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/toUint8Array.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/toUtf8.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/toUtf8.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/ts3.4/fromUtf8.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/ts3.4/fromUtf8.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/ts3.4/index.d.ts +3 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/ts3.4/toUint8Array.d.ts +3 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/ts3.4/toUtf8.browser.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/dist-types/ts3.4/toUtf8.d.ts +1 -0
- package/node_modules/@aws-sdk/util-utf8/package.json +62 -0
- package/node_modules/@aws-sdk/util-waiter/package.json +3 -3
- package/package.json +6 -6
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/CHANGELOG.md +0 -125
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/README.md +0 -18
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.d.ts +0 -17
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js +0 -124
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.d.ts +0 -20
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js +0 -98
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.d.ts +0 -1
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js +0 -5
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.d.ts +0 -10
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js +0 -80
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js.map +0 -1
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/knownHashes.fixture.d.ts +0 -5
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/knownHashes.fixture.js +0 -322
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/package.json +0 -28
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts +0 -164
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/constants.ts +0 -98
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/index.ts +0 -1
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts +0 -86
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/src/knownHashes.fixture.ts +0 -401
- package/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/tsconfig.json +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isEmptyData.js","sourceRoot":"","sources":["../src/isEmptyData.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CAAC,IAAgB;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;KAC1B;IAED,OAAO,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;AAC/B,CAAC;AAND,kCAMC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class Sha256 implements
|
|
3
|
-
private readonly
|
|
1
|
+
import { Checksum, SourceData } from "@aws-sdk/types";
|
|
2
|
+
export declare class Sha256 implements Checksum {
|
|
3
|
+
private readonly secret?;
|
|
4
|
+
private key;
|
|
4
5
|
private toHash;
|
|
5
6
|
constructor(secret?: SourceData);
|
|
6
7
|
update(data: SourceData): void;
|
|
7
8
|
digest(): Promise<Uint8Array>;
|
|
9
|
+
reset(): void;
|
|
8
10
|
}
|
|
@@ -7,14 +7,8 @@ var util_locate_window_1 = require("@aws-sdk/util-locate-window");
|
|
|
7
7
|
var Sha256 = /** @class */ (function () {
|
|
8
8
|
function Sha256(secret) {
|
|
9
9
|
this.toHash = new Uint8Array(0);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
(0, util_locate_window_1.locateWindow)()
|
|
13
|
-
.crypto.subtle.importKey("raw", (0, util_1.convertToBuffer)(secret), constants_1.SHA_256_HMAC_ALGO, false, ["sign"])
|
|
14
|
-
.then(resolve, reject);
|
|
15
|
-
});
|
|
16
|
-
this.key.catch(function () { });
|
|
17
|
-
}
|
|
10
|
+
this.secret = secret;
|
|
11
|
+
this.reset();
|
|
18
12
|
}
|
|
19
13
|
Sha256.prototype.update = function (data) {
|
|
20
14
|
if ((0, util_1.isEmptyData)(data)) {
|
|
@@ -44,7 +38,19 @@ var Sha256 = /** @class */ (function () {
|
|
|
44
38
|
})
|
|
45
39
|
.then(function (data) { return Promise.resolve(new Uint8Array(data)); });
|
|
46
40
|
};
|
|
41
|
+
Sha256.prototype.reset = function () {
|
|
42
|
+
var _this = this;
|
|
43
|
+
this.toHash = new Uint8Array(0);
|
|
44
|
+
if (this.secret && this.secret !== void 0) {
|
|
45
|
+
this.key = new Promise(function (resolve, reject) {
|
|
46
|
+
(0, util_locate_window_1.locateWindow)()
|
|
47
|
+
.crypto.subtle.importKey("raw", (0, util_1.convertToBuffer)(_this.secret), constants_1.SHA_256_HMAC_ALGO, false, ["sign"])
|
|
48
|
+
.then(resolve, reject);
|
|
49
|
+
});
|
|
50
|
+
this.key.catch(function () { });
|
|
51
|
+
}
|
|
52
|
+
};
|
|
47
53
|
return Sha256;
|
|
48
54
|
}());
|
|
49
55
|
exports.Sha256 = Sha256;
|
|
50
|
-
//# sourceMappingURL=
|
|
56
|
+
//# sourceMappingURL=webCryptoSha256.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webCryptoSha256.js","sourceRoot":"","sources":["../src/webCryptoSha256.ts"],"names":[],"mappings":";;;AACA,yCAAgE;AAChE,yCAIqB;AACrB,kEAA2D;AAE3D;IAKE,gBAAY,MAAmB;QAFvB,WAAM,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAG7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,uBAAM,GAAN,UAAO,IAAgB;QACrB,IAAI,IAAA,kBAAW,EAAC,IAAI,CAAC,EAAE;YACrB,OAAO;SACR;QAED,IAAM,MAAM,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;QACrC,IAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAC3C,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,uBAAM,GAAN;QAAA,iBAkBC;QAjBC,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAC,GAAG;gBACvB,OAAA,IAAA,iCAAY,GAAE;qBACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,6BAAiB,EAAE,GAAG,EAAE,KAAI,CAAC,MAAM,CAAC;qBACvD,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,UAAU,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC;YAFvC,CAEuC,CACxC,CAAC;SACH;QAED,IAAI,IAAA,kBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,8BAAkB,CAAC,CAAC;SAC5C;QAED,OAAO,OAAO,CAAC,OAAO,EAAE;aACrB,IAAI,CAAC;YACJ,OAAA,IAAA,iCAAY,GAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAY,EAAE,KAAI,CAAC,MAAM,CAAC;QAA9D,CAA8D,CAC/D;aACA,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAArC,CAAqC,CAAC,CAAC;IAC3D,CAAC;IAED,sBAAK,GAAL;QAAA,iBAgBC;QAfC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACrC,IAAA,iCAAY,GAAE;qBACT,MAAM,CAAC,MAAM,CAAC,SAAS,CACxB,KAAK,EACL,IAAA,sBAAe,EAAC,KAAI,CAAC,MAAoB,CAAC,EAC1C,6BAAiB,EACjB,KAAK,EACL,CAAC,MAAM,CAAC,CACX;qBACI,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAO,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;IACH,aAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DY,wBAAM"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-crypto/sha256-browser",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prepublishOnly": "tsc",
|
|
6
6
|
"pretest": "tsc -p tsconfig.test.json",
|
|
@@ -15,18 +15,19 @@
|
|
|
15
15
|
"email": "aws-cryptools@amazon.com",
|
|
16
16
|
"url": "https://docs.aws.amazon.com/aws-crypto-tools/index.html?id=docs_gateway#lang/en_us"
|
|
17
17
|
},
|
|
18
|
+
"homepage": "https://github.com/aws/aws-sdk-js-crypto-helpers/tree/master/packages/sha256-browser",
|
|
18
19
|
"license": "Apache-2.0",
|
|
19
20
|
"dependencies": {
|
|
20
|
-
"@aws-crypto/ie11-detection": "^
|
|
21
|
-
"@aws-crypto/sha256-js": "^
|
|
22
|
-
"@aws-crypto/supports-web-crypto": "^
|
|
23
|
-
"@aws-crypto/util": "^
|
|
24
|
-
"@aws-sdk/types": "^3.
|
|
21
|
+
"@aws-crypto/ie11-detection": "^3.0.0",
|
|
22
|
+
"@aws-crypto/sha256-js": "^3.0.0",
|
|
23
|
+
"@aws-crypto/supports-web-crypto": "^3.0.0",
|
|
24
|
+
"@aws-crypto/util": "^3.0.0",
|
|
25
|
+
"@aws-sdk/types": "^3.222.0",
|
|
25
26
|
"@aws-sdk/util-locate-window": "^3.0.0",
|
|
26
27
|
"@aws-sdk/util-utf8-browser": "^3.0.0",
|
|
27
28
|
"tslib": "^1.11.1"
|
|
28
29
|
},
|
|
29
30
|
"main": "./build/index.js",
|
|
30
31
|
"types": "./build/index.d.ts",
|
|
31
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "7f56cee8f62bd65cd397eeec29c3c997215bd80c"
|
|
32
33
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Sha256 as Ie11Sha256 } from "./ie11Sha256";
|
|
2
2
|
import { Sha256 as WebCryptoSha256 } from "./webCryptoSha256";
|
|
3
3
|
import { Sha256 as JsSha256 } from "@aws-crypto/sha256-js";
|
|
4
|
-
import {
|
|
4
|
+
import { Checksum, SourceData } from "@aws-sdk/types";
|
|
5
5
|
import { supportsWebCrypto } from "@aws-crypto/supports-web-crypto";
|
|
6
6
|
import { isMsWindow } from "@aws-crypto/ie11-detection";
|
|
7
7
|
import { locateWindow } from "@aws-sdk/util-locate-window";
|
|
8
|
+
import { convertToBuffer } from "@aws-crypto/util";
|
|
8
9
|
|
|
9
|
-
export class Sha256 implements
|
|
10
|
-
private
|
|
10
|
+
export class Sha256 implements Checksum {
|
|
11
|
+
private hash: Checksum;
|
|
11
12
|
|
|
12
13
|
constructor(secret?: SourceData) {
|
|
13
14
|
if (supportsWebCrypto(locateWindow())) {
|
|
@@ -20,10 +21,14 @@ export class Sha256 implements Hash {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
update(data: SourceData, encoding?: "utf8" | "ascii" | "latin1"): void {
|
|
23
|
-
this.hash.update(data
|
|
24
|
+
this.hash.update(convertToBuffer(data));
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
digest(): Promise<Uint8Array> {
|
|
27
28
|
return this.hash.digest();
|
|
28
29
|
}
|
|
30
|
+
|
|
31
|
+
reset(): void {
|
|
32
|
+
this.hash.reset();
|
|
33
|
+
}
|
|
29
34
|
}
|
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
import { isEmptyData } from "./isEmptyData";
|
|
2
2
|
import { SHA_256_HMAC_ALGO } from "./constants";
|
|
3
|
-
import {
|
|
3
|
+
import { Checksum, SourceData } from "@aws-sdk/types";
|
|
4
4
|
import { fromUtf8 } from "@aws-sdk/util-utf8-browser";
|
|
5
5
|
import { CryptoOperation, Key, MsWindow } from "@aws-crypto/ie11-detection";
|
|
6
6
|
import { locateWindow } from "@aws-sdk/util-locate-window";
|
|
7
7
|
|
|
8
|
-
export class Sha256 implements
|
|
9
|
-
private
|
|
8
|
+
export class Sha256 implements Checksum {
|
|
9
|
+
private readonly secret?: SourceData;
|
|
10
|
+
private operation!: Promise<CryptoOperation>;
|
|
10
11
|
|
|
11
12
|
constructor(secret?: SourceData) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
(locateWindow() as MsWindow).msCrypto.subtle.sign(
|
|
15
|
-
SHA_256_HMAC_ALGO,
|
|
16
|
-
keyData
|
|
17
|
-
)
|
|
18
|
-
);
|
|
19
|
-
this.operation.catch(() => {});
|
|
20
|
-
} else {
|
|
21
|
-
this.operation = Promise.resolve(
|
|
22
|
-
(locateWindow() as MsWindow).msCrypto.subtle.digest("SHA-256")
|
|
23
|
-
);
|
|
24
|
-
}
|
|
13
|
+
this.secret = secret;
|
|
14
|
+
this.reset();
|
|
25
15
|
}
|
|
26
16
|
|
|
27
17
|
update(toHash: SourceData): void {
|
|
@@ -60,6 +50,22 @@ export class Sha256 implements Hash {
|
|
|
60
50
|
})
|
|
61
51
|
);
|
|
62
52
|
}
|
|
53
|
+
|
|
54
|
+
reset(): void {
|
|
55
|
+
if (this.secret) {
|
|
56
|
+
this.operation = getKeyPromise(this.secret).then(keyData =>
|
|
57
|
+
(locateWindow() as MsWindow).msCrypto.subtle.sign(
|
|
58
|
+
SHA_256_HMAC_ALGO,
|
|
59
|
+
keyData
|
|
60
|
+
)
|
|
61
|
+
);
|
|
62
|
+
this.operation.catch(() => {});
|
|
63
|
+
} else {
|
|
64
|
+
this.operation = Promise.resolve(
|
|
65
|
+
(locateWindow() as MsWindow).msCrypto.subtle.digest("SHA-256")
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
63
69
|
}
|
|
64
70
|
|
|
65
71
|
function getKeyPromise(secret: SourceData): Promise<Key> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Checksum, SourceData } from "@aws-sdk/types";
|
|
2
2
|
import { isEmptyData, convertToBuffer } from "@aws-crypto/util";
|
|
3
3
|
import {
|
|
4
4
|
EMPTY_DATA_SHA_256,
|
|
@@ -7,25 +7,14 @@ import {
|
|
|
7
7
|
} from "./constants";
|
|
8
8
|
import { locateWindow } from "@aws-sdk/util-locate-window";
|
|
9
9
|
|
|
10
|
-
export class Sha256 implements
|
|
11
|
-
private readonly
|
|
10
|
+
export class Sha256 implements Checksum {
|
|
11
|
+
private readonly secret?: SourceData;
|
|
12
|
+
private key: Promise<CryptoKey> | undefined;
|
|
12
13
|
private toHash: Uint8Array = new Uint8Array(0);
|
|
13
14
|
|
|
14
15
|
constructor(secret?: SourceData) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
locateWindow()
|
|
18
|
-
.crypto.subtle.importKey(
|
|
19
|
-
"raw",
|
|
20
|
-
convertToBuffer(secret),
|
|
21
|
-
SHA_256_HMAC_ALGO,
|
|
22
|
-
false,
|
|
23
|
-
["sign"]
|
|
24
|
-
)
|
|
25
|
-
.then(resolve, reject);
|
|
26
|
-
});
|
|
27
|
-
this.key.catch(() => {});
|
|
28
|
-
}
|
|
16
|
+
this.secret = secret;
|
|
17
|
+
this.reset();
|
|
29
18
|
}
|
|
30
19
|
|
|
31
20
|
update(data: SourceData): void {
|
|
@@ -61,4 +50,22 @@ export class Sha256 implements Hash {
|
|
|
61
50
|
)
|
|
62
51
|
.then((data) => Promise.resolve(new Uint8Array(data)));
|
|
63
52
|
}
|
|
53
|
+
|
|
54
|
+
reset(): void {
|
|
55
|
+
this.toHash = new Uint8Array(0);
|
|
56
|
+
if (this.secret && this.secret !== void 0) {
|
|
57
|
+
this.key = new Promise((resolve, reject) => {
|
|
58
|
+
locateWindow()
|
|
59
|
+
.crypto.subtle.importKey(
|
|
60
|
+
"raw",
|
|
61
|
+
convertToBuffer(this.secret as SourceData),
|
|
62
|
+
SHA_256_HMAC_ALGO,
|
|
63
|
+
false,
|
|
64
|
+
["sign"]
|
|
65
|
+
)
|
|
66
|
+
.then(resolve, reject);
|
|
67
|
+
});
|
|
68
|
+
this.key.catch(() => {});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
64
71
|
}
|
|
@@ -3,104 +3,84 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
6
|
+
# [3.0.0](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v2.0.2...v3.0.0) (2023-01-12)
|
|
9
7
|
|
|
8
|
+
### Bug Fixes
|
|
10
9
|
|
|
10
|
+
- **docs:** sha256 packages, clarify hmac support ([#455](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/455)) ([1be5043](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/1be5043325991f3f5ccb52a8dd928f004b4d442e))
|
|
11
11
|
|
|
12
|
+
- feat!: replace Hash implementations with Checksum interface (#492) ([da43dc0](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/da43dc0fdf669d9ebb5bfb1b1f7c79e46c4aaae1)), closes [#492](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/492)
|
|
12
13
|
|
|
14
|
+
### BREAKING CHANGES
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
- All classes that implemented `Hash` now implement `Checksum`.
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
## [2.0.2](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v2.0.1...v2.0.2) (2022-09-07)
|
|
17
19
|
|
|
20
|
+
### Bug Fixes
|
|
18
21
|
|
|
22
|
+
- **#337:** update @aws-sdk/types ([#373](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/373)) ([b26a811](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/b26a811a392f5209c7ec7e57251500d4d78f97ff)), closes [#337](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/337)
|
|
19
23
|
|
|
24
|
+
## [2.0.1](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v2.0.0...v2.0.1) (2021-12-09)
|
|
20
25
|
|
|
26
|
+
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
21
27
|
|
|
22
|
-
|
|
28
|
+
# [2.0.0](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v1.2.2...v2.0.0) (2021-10-25)
|
|
23
29
|
|
|
24
30
|
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
25
31
|
|
|
32
|
+
## [1.2.2](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v1.2.1...v1.2.2) (2021-10-12)
|
|
26
33
|
|
|
34
|
+
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
27
35
|
|
|
36
|
+
## [1.2.1](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v1.2.0...v1.2.1) (2021-09-17)
|
|
28
37
|
|
|
38
|
+
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
29
39
|
|
|
30
40
|
# [1.2.0](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/v1.1.1...v1.2.0) (2021-09-17)
|
|
31
41
|
|
|
32
|
-
|
|
33
42
|
### Features
|
|
34
43
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
44
|
+
- add @aws-crypto/util ([8f489cb](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/8f489cbe4c0e134f826bac66f1bf5172597048b9))
|
|
40
45
|
|
|
41
46
|
# [1.1.0](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/@aws-crypto/sha256-js@1.0.0...@aws-crypto/sha256-js@1.1.0) (2021-01-13)
|
|
42
47
|
|
|
43
|
-
|
|
44
48
|
### Bug Fixes
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
- remove package lock ([6002a5a](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/6002a5ab9218dc8798c19dc205d3eebd3bec5b43))
|
|
51
|
+
- **aws-crypto:** export explicit dependencies on [@aws-types](https://github.com/aws-types) ([6a1873a](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/6a1873a4dcc2aaa4a1338595703cfa7099f17b8c))
|
|
52
|
+
- **deps-dev:** move @aws-sdk/types to devDependencies ([#188](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/188)) ([08efdf4](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/08efdf46dcc612d88c441e29945d787f253ee77d))
|
|
53
53
|
|
|
54
54
|
# [1.0.0](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/@aws-crypto/sha256-js@1.0.0-alpha.0...@aws-crypto/sha256-js@1.0.0) (2020-10-22)
|
|
55
55
|
|
|
56
56
|
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
58
|
# [1.0.0-alpha.0](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/@aws-crypto/sha256-js@0.1.0-preview.4...@aws-crypto/sha256-js@1.0.0-alpha.0) (2020-02-07)
|
|
63
59
|
|
|
64
60
|
**Note:** Version bump only for package @aws-crypto/sha256-js
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
62
|
# [0.1.0-preview.4](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/@aws-crypto/sha256-js@0.1.0-preview.2...@aws-crypto/sha256-js@0.1.0-preview.4) (2020-01-16)
|
|
71
63
|
|
|
72
|
-
|
|
73
64
|
### Bug Fixes
|
|
74
65
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
66
|
+
- Changed package.json files to point to the right Git repo ([#9](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/9)) ([028245d](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/028245d72e642ca98d82226afb300eb154503c4a)), closes [#8](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/8)
|
|
67
|
+
- es2015.iterable required ([#10](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/10)) ([6e08d83](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/6e08d83c33667ad8cbeeaaa7cedf1bbe05f79ed8))
|
|
68
|
+
- lerna version maintains package-lock ([#14](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/14)) ([2ef29e1](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/2ef29e13779703a5c9b32e93d18918fcb33b7272)), closes [#13](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/13)
|
|
82
69
|
|
|
83
70
|
# [0.1.0-preview.3](https://github.com/aws/aws-sdk-js-crypto-helpers/compare/@aws-crypto/sha256-js@0.1.0-preview.2...@aws-crypto/sha256-js@0.1.0-preview.3) (2019-11-15)
|
|
84
71
|
|
|
85
|
-
|
|
86
72
|
### Bug Fixes
|
|
87
73
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
74
|
+
- Changed package.json files to point to the right Git repo ([#9](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/9)) ([028245d](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/028245d72e642ca98d82226afb300eb154503c4a)), closes [#8](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/8)
|
|
75
|
+
- es2015.iterable required ([#10](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/10)) ([6e08d83](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/6e08d83c33667ad8cbeeaaa7cedf1bbe05f79ed8))
|
|
76
|
+
- lerna version maintains package-lock ([#14](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/14)) ([2ef29e1](https://github.com/aws/aws-sdk-js-crypto-helpers/commit/2ef29e13779703a5c9b32e93d18918fcb33b7272)), closes [#13](https://github.com/aws/aws-sdk-js-crypto-helpers/issues/13)
|
|
95
77
|
|
|
96
78
|
# [0.1.0-preview.2](https://github.com/aws/aws-javascript-crypto-helpers/compare/@aws-crypto/sha256-js@0.1.0-preview.1...@aws-crypto/sha256-js@0.1.0-preview.2) (2019-10-30)
|
|
97
79
|
|
|
98
|
-
|
|
99
80
|
### Bug Fixes
|
|
100
81
|
|
|
101
|
-
|
|
102
|
-
|
|
82
|
+
- remove /src/ from .npmignore (for sourcemaps) ([#5](https://github.com/aws/aws-javascript-crypto-helpers/issues/5)) ([ec52056](https://github.com/aws/aws-javascript-crypto-helpers/commit/ec52056))
|
|
103
83
|
|
|
104
84
|
### Features
|
|
105
85
|
|
|
106
|
-
|
|
86
|
+
- **sha256-js:** expose synchronous digest ([#7](https://github.com/aws/aws-javascript-crypto-helpers/issues/7)) ([9edaef7](https://github.com/aws/aws-javascript-crypto-helpers/commit/9edaef7)), closes [#6](https://github.com/aws/aws-javascript-crypto-helpers/issues/6)
|
|
@@ -4,6 +4,7 @@ A pure JS implementation SHA256.
|
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
7
|
+
- To hash "some data"
|
|
7
8
|
```
|
|
8
9
|
import {Sha256} from '@aws-crypto/sha256-js';
|
|
9
10
|
|
|
@@ -13,6 +14,16 @@ const result = await hash.digest();
|
|
|
13
14
|
|
|
14
15
|
```
|
|
15
16
|
|
|
17
|
+
- To hmac "some data" with "a key"
|
|
18
|
+
```
|
|
19
|
+
import {Sha256} from '@aws-crypto/sha256-js';
|
|
20
|
+
|
|
21
|
+
const hash = new Sha256('a key');
|
|
22
|
+
hash.update('some data');
|
|
23
|
+
const result = await hash.digest();
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
|
|
16
27
|
## Test
|
|
17
28
|
|
|
18
29
|
`npm test`
|
|
@@ -121,4 +121,4 @@ var RawSha256 = /** @class */ (function () {
|
|
|
121
121
|
return RawSha256;
|
|
122
122
|
}());
|
|
123
123
|
exports.RawSha256 = RawSha256;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF3U2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jhd1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FNcUI7QUFFckI7O0dBRUc7QUFDSDtJQUFBO1FBQ1UsVUFBSyxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBOEk1QixDQUFDO0lBNUlDLDBCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRywrQkFBbUIsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQztZQUViLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFB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LENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbkUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFNLElBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsSUFBTSxFQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUM7WUFFSixJQUFNLEVBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQztZQUVKLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBeEpELElBd0pDO0FBeEpZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQkxPQ0tfU0laRSxcbiAgRElHRVNUX0xFTkdUSCxcbiAgSU5JVCxcbiAgS0VZLFxuICBNQVhfSEFTSEFCTEVfTEVOR1RIXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgUmF3U2hhMjU2IHtcbiAgcHJpdmF0ZSBzdGF0ZTogSW50MzJBcnJheSA9IEludDMyQXJyYXkuZnJvbShJTklUKTtcbiAgcHJpdmF0ZSB0ZW1wOiBJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgcHJpdmF0ZSBidWZmZXJMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1cGRhdGUoZGF0YTogVWludDhBcnJheSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC5cIik7XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzXCIpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgYnl0ZUxlbmd0aC0tO1xuXG4gICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaWdlc3QoKTogVWludDhBcnJheSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICBjb25zdCBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICBjb25zdCBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgICAgICB0aGlzLmJ1ZmZlci5idWZmZXIsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihcbiAgICAgICAgQkxPQ0tfU0laRSAtIDgsXG4gICAgICAgIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcblxuICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG5cbiAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzaEJ1ZmZlcigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgc3RhdGUgfSA9IHRoaXM7XG5cbiAgICBsZXQgc3RhdGUwID0gc3RhdGVbMF0sXG4gICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgc3RhdGUzID0gc3RhdGVbM10sXG4gICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgc3RhdGU2ID0gc3RhdGVbNl0sXG4gICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIHRoaXMudGVtcFtpXSA9XG4gICAgICAgICAgKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDJdICYgMHhmZikgPDwgOCkgfFxuICAgICAgICAgIChidWZmZXJbaSAqIDQgKyAzXSAmIDB4ZmYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHUgPSB0aGlzLnRlbXBbaSAtIDJdO1xuICAgICAgICBjb25zdCB0MSA9XG4gICAgICAgICAgKCh1ID4+PiAxNykgfCAodSA8PCAxNSkpIF4gKCh1ID4+PiAxOSkgfCAodSA8PCAxMykpIF4gKHUgPj4+IDEwKTtcblxuICAgICAgICB1ID0gdGhpcy50ZW1wW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IHQyID1cbiAgICAgICAgICAoKHUgPj4+IDcpIHwgKHUgPDwgMjUpKSBeICgodSA+Pj4gMTgpIHwgKHUgPDwgMTQpKSBeICh1ID4+PiAzKTtcblxuICAgICAgICB0aGlzLnRlbXBbaV0gPVxuICAgICAgICAgICgodDEgKyB0aGlzLnRlbXBbaSAtIDddKSB8IDApICsgKCh0MiArIHRoaXMudGVtcFtpIC0gMTZdKSB8IDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0MSA9XG4gICAgICAgICgoKCgoKHN0YXRlNCA+Pj4gNikgfCAoc3RhdGU0IDw8IDI2KSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAxMSkgfCAoc3RhdGU0IDw8IDIxKSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAyNSkgfCAoc3RhdGU0IDw8IDcpKSkgK1xuICAgICAgICAgICgoc3RhdGU0ICYgc3RhdGU1KSBeICh+c3RhdGU0ICYgc3RhdGU2KSkpIHxcbiAgICAgICAgICAwKSArXG4gICAgICAgICAgKChzdGF0ZTcgKyAoKEtFWVtpXSArIHRoaXMudGVtcFtpXSkgfCAwKSkgfCAwKSkgfFxuICAgICAgICAwO1xuXG4gICAgICBjb25zdCB0MiA9XG4gICAgICAgICgoKChzdGF0ZTAgPj4+IDIpIHwgKHN0YXRlMCA8PCAzMCkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMTMpIHwgKHN0YXRlMCA8PCAxOSkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMjIpIHwgKHN0YXRlMCA8PCAxMCkpKSArXG4gICAgICAgICAgKChzdGF0ZTAgJiBzdGF0ZTEpIF4gKHN0YXRlMCAmIHN0YXRlMikgXiAoc3RhdGUxICYgc3RhdGUyKSkpIHxcbiAgICAgICAgMDtcblxuICAgICAgc3RhdGU3ID0gc3RhdGU2O1xuICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgc3RhdGU0ID0gKHN0YXRlMyArIHQxKSB8IDA7XG4gICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICBzdGF0ZTEgPSBzdGF0ZTA7XG4gICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cblxuICAgIHN0YXRlWzBdICs9IHN0YXRlMDtcbiAgICBzdGF0ZVsxXSArPSBzdGF0ZTE7XG4gICAgc3RhdGVbMl0gKz0gc3RhdGUyO1xuICAgIHN0YXRlWzNdICs9IHN0YXRlMztcbiAgICBzdGF0ZVs0XSArPSBzdGF0ZTQ7XG4gICAgc3RhdGVbNV0gKz0gc3RhdGU1O1xuICAgIHN0YXRlWzZdICs9IHN0YXRlNjtcbiAgICBzdGF0ZVs3XSArPSBzdGF0ZTc7XG4gIH1cbn1cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=RawSha256.js.map
|
|
File without changes
|
|
@@ -95,4 +95,4 @@ exports.INIT = [
|
|
|
95
95
|
* @internal
|
|
96
96
|
*/
|
|
97
97
|
exports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;
|
|
98
|
-
//# sourceMappingURL=
|
|
98
|
+
//# sourceMappingURL=constants.js.map
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
|
-
|
|
5
|
-
//# sourceMappingURL=
|
|
4
|
+
tslib_1.__exportStar(require("./jsSha256"), exports);
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
File without changes
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare class Sha256 implements
|
|
3
|
-
private readonly
|
|
4
|
-
private
|
|
1
|
+
import { Checksum, SourceData } from "@aws-sdk/types";
|
|
2
|
+
export declare class Sha256 implements Checksum {
|
|
3
|
+
private readonly secret?;
|
|
4
|
+
private hash;
|
|
5
|
+
private outer?;
|
|
5
6
|
private error;
|
|
6
7
|
constructor(secret?: SourceData);
|
|
7
8
|
update(toHash: SourceData): void;
|
|
8
9
|
digestSync(): Uint8Array;
|
|
9
10
|
digest(): Promise<Uint8Array>;
|
|
11
|
+
reset(): void;
|
|
10
12
|
}
|
|
@@ -7,23 +7,9 @@ var RawSha256_1 = require("./RawSha256");
|
|
|
7
7
|
var util_1 = require("@aws-crypto/util");
|
|
8
8
|
var Sha256 = /** @class */ (function () {
|
|
9
9
|
function Sha256(secret) {
|
|
10
|
+
this.secret = secret;
|
|
10
11
|
this.hash = new RawSha256_1.RawSha256();
|
|
11
|
-
|
|
12
|
-
this.outer = new RawSha256_1.RawSha256();
|
|
13
|
-
var inner = bufferFromSecret(secret);
|
|
14
|
-
var outer = new Uint8Array(constants_1.BLOCK_SIZE);
|
|
15
|
-
outer.set(inner);
|
|
16
|
-
for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {
|
|
17
|
-
inner[i] ^= 0x36;
|
|
18
|
-
outer[i] ^= 0x5c;
|
|
19
|
-
}
|
|
20
|
-
this.hash.update(inner);
|
|
21
|
-
this.outer.update(outer);
|
|
22
|
-
// overwrite the copied key in memory
|
|
23
|
-
for (var i = 0; i < inner.byteLength; i++) {
|
|
24
|
-
inner[i] = 0;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
12
|
+
this.reset();
|
|
27
13
|
}
|
|
28
14
|
Sha256.prototype.update = function (toHash) {
|
|
29
15
|
if ((0, util_1.isEmptyData)(toHash) || this.error) {
|
|
@@ -57,12 +43,31 @@ var Sha256 = /** @class */ (function () {
|
|
|
57
43
|
* However, it can sometimes be useful to have a sync method.
|
|
58
44
|
*/
|
|
59
45
|
Sha256.prototype.digest = function () {
|
|
60
|
-
return
|
|
61
|
-
return
|
|
46
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
47
|
+
return tslib_1.__generator(this, function (_a) {
|
|
62
48
|
return [2 /*return*/, this.digestSync()];
|
|
63
49
|
});
|
|
64
50
|
});
|
|
65
51
|
};
|
|
52
|
+
Sha256.prototype.reset = function () {
|
|
53
|
+
this.hash = new RawSha256_1.RawSha256();
|
|
54
|
+
if (this.secret) {
|
|
55
|
+
this.outer = new RawSha256_1.RawSha256();
|
|
56
|
+
var inner = bufferFromSecret(this.secret);
|
|
57
|
+
var outer = new Uint8Array(constants_1.BLOCK_SIZE);
|
|
58
|
+
outer.set(inner);
|
|
59
|
+
for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {
|
|
60
|
+
inner[i] ^= 0x36;
|
|
61
|
+
outer[i] ^= 0x5c;
|
|
62
|
+
}
|
|
63
|
+
this.hash.update(inner);
|
|
64
|
+
this.outer.update(outer);
|
|
65
|
+
// overwrite the copied key in memory
|
|
66
|
+
for (var i = 0; i < inner.byteLength; i++) {
|
|
67
|
+
inner[i] = 0;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
66
71
|
return Sha256;
|
|
67
72
|
}());
|
|
68
73
|
exports.Sha256 = Sha256;
|
|
@@ -77,4 +82,4 @@ function bufferFromSecret(secret) {
|
|
|
77
82
|
buffer.set(input);
|
|
78
83
|
return buffer;
|
|
79
84
|
}
|
|
80
|
-
//# sourceMappingURL=
|
|
85
|
+
//# sourceMappingURL=jsSha256.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsSha256.js","sourceRoot":"","sources":["../src/jsSha256.ts"],"names":[],"mappings":"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"}
|