初始化环境文件
This commit is contained in:
164
node_modules/@aws-crypto/sha256-js/src/RawSha256.ts
generated
vendored
Normal file
164
node_modules/@aws-crypto/sha256-js/src/RawSha256.ts
generated
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
import {
|
||||
BLOCK_SIZE,
|
||||
DIGEST_LENGTH,
|
||||
INIT,
|
||||
KEY,
|
||||
MAX_HASHABLE_LENGTH
|
||||
} from "./constants";
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export class RawSha256 {
|
||||
private state: Int32Array = Int32Array.from(INIT);
|
||||
private temp: Int32Array = new Int32Array(64);
|
||||
private buffer: Uint8Array = new Uint8Array(64);
|
||||
private bufferLength: number = 0;
|
||||
private bytesHashed: number = 0;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
finished: boolean = false;
|
||||
|
||||
update(data: Uint8Array): void {
|
||||
if (this.finished) {
|
||||
throw new Error("Attempted to update an already finished hash.");
|
||||
}
|
||||
|
||||
let position = 0;
|
||||
let { byteLength } = data;
|
||||
this.bytesHashed += byteLength;
|
||||
|
||||
if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {
|
||||
throw new Error("Cannot hash more than 2^53 - 1 bits");
|
||||
}
|
||||
|
||||
while (byteLength > 0) {
|
||||
this.buffer[this.bufferLength++] = data[position++];
|
||||
byteLength--;
|
||||
|
||||
if (this.bufferLength === BLOCK_SIZE) {
|
||||
this.hashBuffer();
|
||||
this.bufferLength = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
digest(): Uint8Array {
|
||||
if (!this.finished) {
|
||||
const bitsHashed = this.bytesHashed * 8;
|
||||
const bufferView = new DataView(
|
||||
this.buffer.buffer,
|
||||
this.buffer.byteOffset,
|
||||
this.buffer.byteLength
|
||||
);
|
||||
|
||||
const undecoratedLength = this.bufferLength;
|
||||
bufferView.setUint8(this.bufferLength++, 0x80);
|
||||
|
||||
// Ensure the final block has enough room for the hashed length
|
||||
if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {
|
||||
for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {
|
||||
bufferView.setUint8(i, 0);
|
||||
}
|
||||
this.hashBuffer();
|
||||
this.bufferLength = 0;
|
||||
}
|
||||
|
||||
for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {
|
||||
bufferView.setUint8(i, 0);
|
||||
}
|
||||
bufferView.setUint32(
|
||||
BLOCK_SIZE - 8,
|
||||
Math.floor(bitsHashed / 0x100000000),
|
||||
true
|
||||
);
|
||||
bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);
|
||||
|
||||
this.hashBuffer();
|
||||
|
||||
this.finished = true;
|
||||
}
|
||||
|
||||
// The value in state is little-endian rather than big-endian, so flip
|
||||
// each word into a new Uint8Array
|
||||
const out = new Uint8Array(DIGEST_LENGTH);
|
||||
for (let i = 0; i < 8; i++) {
|
||||
out[i * 4] = (this.state[i] >>> 24) & 0xff;
|
||||
out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;
|
||||
out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;
|
||||
out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
private hashBuffer(): void {
|
||||
const { buffer, state } = this;
|
||||
|
||||
let state0 = state[0],
|
||||
state1 = state[1],
|
||||
state2 = state[2],
|
||||
state3 = state[3],
|
||||
state4 = state[4],
|
||||
state5 = state[5],
|
||||
state6 = state[6],
|
||||
state7 = state[7];
|
||||
|
||||
for (let i = 0; i < BLOCK_SIZE; i++) {
|
||||
if (i < 16) {
|
||||
this.temp[i] =
|
||||
((buffer[i * 4] & 0xff) << 24) |
|
||||
((buffer[i * 4 + 1] & 0xff) << 16) |
|
||||
((buffer[i * 4 + 2] & 0xff) << 8) |
|
||||
(buffer[i * 4 + 3] & 0xff);
|
||||
} else {
|
||||
let u = this.temp[i - 2];
|
||||
const t1 =
|
||||
((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);
|
||||
|
||||
u = this.temp[i - 15];
|
||||
const t2 =
|
||||
((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);
|
||||
|
||||
this.temp[i] =
|
||||
((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);
|
||||
}
|
||||
|
||||
const t1 =
|
||||
((((((state4 >>> 6) | (state4 << 26)) ^
|
||||
((state4 >>> 11) | (state4 << 21)) ^
|
||||
((state4 >>> 25) | (state4 << 7))) +
|
||||
((state4 & state5) ^ (~state4 & state6))) |
|
||||
0) +
|
||||
((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |
|
||||
0;
|
||||
|
||||
const t2 =
|
||||
((((state0 >>> 2) | (state0 << 30)) ^
|
||||
((state0 >>> 13) | (state0 << 19)) ^
|
||||
((state0 >>> 22) | (state0 << 10))) +
|
||||
((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |
|
||||
0;
|
||||
|
||||
state7 = state6;
|
||||
state6 = state5;
|
||||
state5 = state4;
|
||||
state4 = (state3 + t1) | 0;
|
||||
state3 = state2;
|
||||
state2 = state1;
|
||||
state1 = state0;
|
||||
state0 = (t1 + t2) | 0;
|
||||
}
|
||||
|
||||
state[0] += state0;
|
||||
state[1] += state1;
|
||||
state[2] += state2;
|
||||
state[3] += state3;
|
||||
state[4] += state4;
|
||||
state[5] += state5;
|
||||
state[6] += state6;
|
||||
state[7] += state7;
|
||||
}
|
||||
}
|
||||
98
node_modules/@aws-crypto/sha256-js/src/constants.ts
generated
vendored
Normal file
98
node_modules/@aws-crypto/sha256-js/src/constants.ts
generated
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const BLOCK_SIZE: number = 64;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const DIGEST_LENGTH: number = 32;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const KEY = new Uint32Array([
|
||||
0x428a2f98,
|
||||
0x71374491,
|
||||
0xb5c0fbcf,
|
||||
0xe9b5dba5,
|
||||
0x3956c25b,
|
||||
0x59f111f1,
|
||||
0x923f82a4,
|
||||
0xab1c5ed5,
|
||||
0xd807aa98,
|
||||
0x12835b01,
|
||||
0x243185be,
|
||||
0x550c7dc3,
|
||||
0x72be5d74,
|
||||
0x80deb1fe,
|
||||
0x9bdc06a7,
|
||||
0xc19bf174,
|
||||
0xe49b69c1,
|
||||
0xefbe4786,
|
||||
0x0fc19dc6,
|
||||
0x240ca1cc,
|
||||
0x2de92c6f,
|
||||
0x4a7484aa,
|
||||
0x5cb0a9dc,
|
||||
0x76f988da,
|
||||
0x983e5152,
|
||||
0xa831c66d,
|
||||
0xb00327c8,
|
||||
0xbf597fc7,
|
||||
0xc6e00bf3,
|
||||
0xd5a79147,
|
||||
0x06ca6351,
|
||||
0x14292967,
|
||||
0x27b70a85,
|
||||
0x2e1b2138,
|
||||
0x4d2c6dfc,
|
||||
0x53380d13,
|
||||
0x650a7354,
|
||||
0x766a0abb,
|
||||
0x81c2c92e,
|
||||
0x92722c85,
|
||||
0xa2bfe8a1,
|
||||
0xa81a664b,
|
||||
0xc24b8b70,
|
||||
0xc76c51a3,
|
||||
0xd192e819,
|
||||
0xd6990624,
|
||||
0xf40e3585,
|
||||
0x106aa070,
|
||||
0x19a4c116,
|
||||
0x1e376c08,
|
||||
0x2748774c,
|
||||
0x34b0bcb5,
|
||||
0x391c0cb3,
|
||||
0x4ed8aa4a,
|
||||
0x5b9cca4f,
|
||||
0x682e6ff3,
|
||||
0x748f82ee,
|
||||
0x78a5636f,
|
||||
0x84c87814,
|
||||
0x8cc70208,
|
||||
0x90befffa,
|
||||
0xa4506ceb,
|
||||
0xbef9a3f7,
|
||||
0xc67178f2
|
||||
]);
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const INIT = [
|
||||
0x6a09e667,
|
||||
0xbb67ae85,
|
||||
0x3c6ef372,
|
||||
0xa54ff53a,
|
||||
0x510e527f,
|
||||
0x9b05688c,
|
||||
0x1f83d9ab,
|
||||
0x5be0cd19
|
||||
];
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;
|
||||
1
node_modules/@aws-crypto/sha256-js/src/index.ts
generated
vendored
Normal file
1
node_modules/@aws-crypto/sha256-js/src/index.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./jsSha256";
|
||||
94
node_modules/@aws-crypto/sha256-js/src/jsSha256.ts
generated
vendored
Normal file
94
node_modules/@aws-crypto/sha256-js/src/jsSha256.ts
generated
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
import { BLOCK_SIZE } from "./constants";
|
||||
import { RawSha256 } from "./RawSha256";
|
||||
import { Checksum, SourceData } from "@aws-sdk/types";
|
||||
import { isEmptyData, convertToBuffer } from "@aws-crypto/util";
|
||||
|
||||
export class Sha256 implements Checksum {
|
||||
private readonly secret?: SourceData;
|
||||
private hash: RawSha256;
|
||||
private outer?: RawSha256;
|
||||
private error: any;
|
||||
|
||||
constructor(secret?: SourceData) {
|
||||
this.secret = secret;
|
||||
this.hash = new RawSha256();
|
||||
this.reset();
|
||||
}
|
||||
|
||||
update(toHash: SourceData): void {
|
||||
if (isEmptyData(toHash) || this.error) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
this.hash.update(convertToBuffer(toHash));
|
||||
} catch (e) {
|
||||
this.error = e;
|
||||
}
|
||||
}
|
||||
|
||||
/* This synchronous method keeps compatibility
|
||||
* with the v2 aws-sdk.
|
||||
*/
|
||||
digestSync(): Uint8Array {
|
||||
if (this.error) {
|
||||
throw this.error;
|
||||
}
|
||||
|
||||
if (this.outer) {
|
||||
if (!this.outer.finished) {
|
||||
this.outer.update(this.hash.digest());
|
||||
}
|
||||
|
||||
return this.outer.digest();
|
||||
}
|
||||
|
||||
return this.hash.digest();
|
||||
}
|
||||
|
||||
/* The underlying digest method here is synchronous.
|
||||
* To keep the same interface with the other hash functions
|
||||
* the default is to expose this as an async method.
|
||||
* However, it can sometimes be useful to have a sync method.
|
||||
*/
|
||||
async digest(): Promise<Uint8Array> {
|
||||
return this.digestSync();
|
||||
}
|
||||
|
||||
reset(): void {
|
||||
this.hash = new RawSha256();
|
||||
if (this.secret) {
|
||||
this.outer = new RawSha256();
|
||||
const inner = bufferFromSecret(this.secret);
|
||||
const outer = new Uint8Array(BLOCK_SIZE);
|
||||
outer.set(inner);
|
||||
|
||||
for (let i = 0; i < BLOCK_SIZE; i++) {
|
||||
inner[i] ^= 0x36;
|
||||
outer[i] ^= 0x5c;
|
||||
}
|
||||
|
||||
this.hash.update(inner);
|
||||
this.outer.update(outer);
|
||||
|
||||
// overwrite the copied key in memory
|
||||
for (let i = 0; i < inner.byteLength; i++) {
|
||||
inner[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function bufferFromSecret(secret: SourceData): Uint8Array {
|
||||
let input = convertToBuffer(secret);
|
||||
|
||||
if (input.byteLength > BLOCK_SIZE) {
|
||||
const bufferHash = new RawSha256();
|
||||
bufferHash.update(input);
|
||||
input = bufferHash.digest();
|
||||
}
|
||||
|
||||
const buffer = new Uint8Array(BLOCK_SIZE);
|
||||
buffer.set(input);
|
||||
return buffer;
|
||||
}
|
||||
401
node_modules/@aws-crypto/sha256-js/src/knownHashes.fixture.ts
generated
vendored
Normal file
401
node_modules/@aws-crypto/sha256-js/src/knownHashes.fixture.ts
generated
vendored
Normal file
@@ -0,0 +1,401 @@
|
||||
import { fromHex } from "@aws-sdk/util-hex-encoding";
|
||||
|
||||
const millionChars = new Uint8Array(1000000);
|
||||
for (let i = 0; i < 1000000; i++) {
|
||||
millionChars[i] = 97;
|
||||
}
|
||||
|
||||
export const hashTestVectors: Array<[Uint8Array, Uint8Array]> = [
|
||||
[
|
||||
Uint8Array.from([97, 98, 99]),
|
||||
fromHex("ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad")
|
||||
],
|
||||
[
|
||||
new Uint8Array(0),
|
||||
fromHex("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
|
||||
],
|
||||
[
|
||||
fromHex("61"),
|
||||
fromHex("ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb")
|
||||
],
|
||||
[
|
||||
fromHex("6161"),
|
||||
fromHex("961b6dd3ede3cb8ecbaacbd68de040cd78eb2ed5889130cceb4c49268ea4d506")
|
||||
],
|
||||
[
|
||||
fromHex("616161"),
|
||||
fromHex("9834876dcfb05cb167a5c24953eba58c4ac89b1adf57f28f2f9d09af107ee8f0")
|
||||
],
|
||||
[
|
||||
fromHex("61616161"),
|
||||
fromHex("61be55a8e2f6b4e172338bddf184d6dbee29c98853e0a0485ecee7f27b9af0b4")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161"),
|
||||
fromHex("ed968e840d10d2d313a870bc131a4e2c311d7ad09bdf32b3418147221f51a6e2")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161"),
|
||||
fromHex("ed02457b5c41d964dbd2f2a609d63fe1bb7528dbe55e1abf5b52c249cd735797")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161"),
|
||||
fromHex("e46240714b5db3a23eee60479a623efba4d633d27fe4f03c904b9e219a7fbe60")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161"),
|
||||
fromHex("1f3ce40415a2081fa3eee75fc39fff8e56c22270d1a978a7249b592dcebd20b4")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161"),
|
||||
fromHex("f2aca93b80cae681221f0445fa4e2cae8a1f9f8fa1e1741d9639caad222f537d")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161"),
|
||||
fromHex("bf2cb58a68f684d95a3b78ef8f661c9a4e5b09e82cc8f9cc88cce90528caeb27")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161"),
|
||||
fromHex("28cb017dfc99073aa1b47c1b30f413e3ce774c4991eb4158de50f9dbb36d8043")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161"),
|
||||
fromHex("f24abc34b13fade76e805799f71187da6cd90b9cac373ae65ed57f143bd664e5")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161"),
|
||||
fromHex("a689d786e81340e45511dec6c7ab2d978434e5db123362450fe10cfac70d19d0")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161"),
|
||||
fromHex("82cab7df0abfb9d95dca4e5937ce2968c798c726fea48c016bf9763221efda13")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161616161"),
|
||||
fromHex("ef2df0b539c6c23de0f4cbe42648c301ae0e22e887340a4599fb4ef4e2678e48")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161616161"),
|
||||
fromHex("0c0beacef8877bbf2416eb00f2b5dc96354e26dd1df5517320459b1236860f8c")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161616161"),
|
||||
fromHex("b860666ee2966dd8f903be44ee605c6e1366f926d9f17a8f49937d11624eb99d")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161616161616161"),
|
||||
fromHex("c926defaaa3d13eda2fc63a553bb7fb7326bece6e7cb67ca5296e4727d89bab4")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161616161616161"),
|
||||
fromHex("a0b4aaab8a966e2193ba172d68162c4656860197f256b5f45f0203397ff3f99c")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161616161616161"),
|
||||
fromHex("42492da06234ad0ac76f5d5debdb6d1ae027cffbe746a1c13b89bb8bc0139137")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161616161616161616161"),
|
||||
fromHex("7df8e299c834de198e264c3e374bc58ecd9382252a705c183beb02f275571e3b")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161616161616161616161"),
|
||||
fromHex("ec7c494df6d2a7ea36668d656e6b8979e33641bfea378c15038af3964db057a3")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161616161616161616161"),
|
||||
fromHex("897d3e95b65f26676081f8b9f3a98b6ee4424566303e8d4e7c7522ebae219eab")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161616161616161616161616161"),
|
||||
fromHex("09f61f8d9cd65e6a0c258087c485b6293541364e42bd97b2d7936580c8aa3c54")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161616161616161616161616161"),
|
||||
fromHex("2f521e2a7d0bd812cbc035f4ed6806eb8d851793b04ba147e8f66b72f5d1f20f")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("9976d549a25115dab4e36d0c1fb8f31cb07da87dd83275977360eb7dc09e88de")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("cc0616e61cbd6e8e5e34e9fb2d320f37de915820206f5696c31f1fbd24aa16de")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("9c547cb8115a44883b9f70ba68f75117cd55359c92611875e386f8af98c172ab")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("6913c9c7fd42fe23df8b6bcd4dbaf1c17748948d97f2980b432319c39eddcf6c")
|
||||
],
|
||||
[
|
||||
fromHex("616161616161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("3a54fc0cbc0b0ef48b6507b7788096235d10292dd3ae24e22f5aa062d4f9864a")
|
||||
],
|
||||
[
|
||||
fromHex("61616161616161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("61c60b487d1a921e0bcc9bf853dda0fb159b30bf57b2e2d2c753b00be15b5a09")
|
||||
],
|
||||
[
|
||||
fromHex("6161616161616161616161616161616161616161616161616161616161616161"),
|
||||
fromHex("3ba3f5f43b92602683c19aee62a20342b084dd5971ddd33808d81a328879a547")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("852785c805c77e71a22340a54e9d95933ed49121e7d2bf3c2d358854bc1359ea")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("a27c896c4859204843166af66f0e902b9c3b3ed6d2fd13d435abc020065c526f")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("629362afc62c74497caed2272e30f8125ecd0965f8d8d7cfc4e260f7f8dd319d")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("22c1d24bcd03e9aee9832efccd6da613fc702793178e5f12c945c7b67ddda933")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("21ec055b38ce759cd4d0f477e9bdec2c5b8199945db4439bae334a964df6246c")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("365a9c3e2c2af0a56e47a9dac51c2c5381bf8f41273bad3175e0e619126ad087")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("b4d5e56e929ba4cda349e9274e3603d0be246b82016bca20f363963c5f2d6845")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("e33cdf9c7f7120b98e8c78408953e07f2ecd183006b5606df349b4c212acf43e")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("c0f8bd4dbc2b0c03107c1c37913f2a7501f521467f45dd0fef6958e9a4692719")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("7a538607fdaab9296995929f451565bbb8142e1844117322aafd2b3d76b01aff")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("66d34fba71f8f450f7e45598853e53bfc23bbd129027cbb131a2f4ffd7878cd0")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("16849877c6c21ef0bfa68e4f6747300ddb171b170b9f00e189edc4c2fc4db93e")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("52789e3423b72beeb898456a4f49662e46b0cbb960784c5ef4b1399d327e7c27")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("6643110c5628fff59edf76d82d5bf573bf800f16a4d65dfb1e5d6f1a46296d0b")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("11eaed932c6c6fddfc2efc394e609facf4abe814fc6180d03b14fce13a07d0e5")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("97daac0ee9998dfcad6c9c0970da5ca411c86233a944c25b47566f6a7bc1ddd5")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("8f9bec6a62dd28ebd36d1227745592de6658b36974a3bb98a4c582f683ea6c42")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("160b4e433e384e05e537dc59b467f7cb2403f0214db15c5db58862a3f1156d2e")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("bfc5fe0e360152ca98c50fab4ed7e3078c17debc2917740d5000913b686ca129")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("6c1b3dc7a706b9dc81352a6716b9c666c608d8626272c64b914ab05572fc6e84")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("abe346a7259fc90b4c27185419628e5e6af6466b1ae9b5446cac4bfc26cf05c4")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("a3f01b6939256127582ac8ae9fb47a382a244680806a3f613a118851c1ca1d47")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("9f4390f8d30c2dd92ec9f095b65e2b9ae9b0a925a5258e241c9f1e910f734318")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("b35439a4ac6f0948b6d6f9e3c6af0f5f590ce20f1bde7090ef7970686ec6738a")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("f13b2d724659eb3bf47f2dd6af1accc87b81f09f59f2b75e5c0bed6589dfe8c6")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("d5c039b748aa64665782974ec3dc3025c042edf54dcdc2b5de31385b094cb678")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("111bb261277afd65f0744b247cd3e47d386d71563d0ed995517807d5ebd4fba3")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("11ee391211c6256460b6ed375957fadd8061cafbb31daf967db875aebd5aaad4")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("35d5fc17cfbbadd00f5e710ada39f194c5ad7c766ad67072245f1fad45f0f530")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("f506898cc7c2e092f9eb9fadae7ba50383f5b46a2a4fe5597dbb553a78981268")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("7d3e74a05d7db15bce4ad9ec0658ea98e3f06eeecf16b4c6fff2da457ddc2f34")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161"
|
||||
),
|
||||
fromHex("ffe054fe7ae0cb6dc65c3af9b61d5209f439851db43d0ba5997337df154668eb")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"de188941a3375d3a8a061e67576e926dc71a7fa3f0cceb97452b4d3227965f9ea8cc75076d9fb9c5417aa5cb30fc22198b34982dbb629e"
|
||||
),
|
||||
fromHex("038051e9c324393bd1ca1978dd0952c2aa3742ca4f1bd5cd4611cea83892d382")
|
||||
],
|
||||
[
|
||||
millionChars,
|
||||
fromHex("cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
),
|
||||
fromHex("45ad4b37c6e2fc0a2cfcc1b5da524132ec707615c2cae1dbbc43c97aa521db81")
|
||||
]
|
||||
];
|
||||
|
||||
/**
|
||||
* @see https://tools.ietf.org/html/rfc4231
|
||||
*/
|
||||
export const hmacTestVectors: Array<[Uint8Array, Uint8Array, Uint8Array]> = [
|
||||
[
|
||||
fromHex("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"),
|
||||
fromHex("4869205468657265"),
|
||||
fromHex("b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7")
|
||||
],
|
||||
[
|
||||
fromHex("4a656665"),
|
||||
fromHex("7768617420646f2079612077616e7420666f72206e6f7468696e673f"),
|
||||
fromHex("5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843")
|
||||
],
|
||||
[
|
||||
fromHex("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
|
||||
fromHex(
|
||||
"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
|
||||
),
|
||||
fromHex("773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe")
|
||||
],
|
||||
[
|
||||
fromHex("0102030405060708090a0b0c0d0e0f10111213141516171819"),
|
||||
fromHex(
|
||||
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
|
||||
),
|
||||
fromHex("82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
),
|
||||
fromHex(
|
||||
"54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374"
|
||||
),
|
||||
fromHex("60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54")
|
||||
],
|
||||
[
|
||||
fromHex(
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
),
|
||||
fromHex(
|
||||
"5468697320697320612074657374207573696e672061206c6172676572207468616e20626c6f636b2d73697a65206b657920616e642061206c6172676572207468616e20626c6f636b2d73697a6520646174612e20546865206b6579206e6565647320746f20626520686173686564206265666f7265206265696e6720757365642062792074686520484d414320616c676f726974686d2e"
|
||||
),
|
||||
fromHex("9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2")
|
||||
]
|
||||
];
|
||||
Reference in New Issue
Block a user