@chr33s/pdf-common 5.0.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 (77) hide show
  1. package/dist/base64.d.ts +7 -0
  2. package/dist/base64.js +24 -0
  3. package/dist/base64.js.map +1 -0
  4. package/dist/brotli.d.ts +9 -0
  5. package/dist/brotli.js +2015 -0
  6. package/dist/brotli.js.map +1 -0
  7. package/dist/compression.d.ts +3 -0
  8. package/dist/compression.js +31 -0
  9. package/dist/compression.js.map +1 -0
  10. package/dist/crypto/aes.d.ts +17 -0
  11. package/dist/crypto/aes.js +60 -0
  12. package/dist/crypto/aes.js.map +1 -0
  13. package/dist/crypto/index.d.ts +7 -0
  14. package/dist/crypto/index.js +8 -0
  15. package/dist/crypto/index.js.map +1 -0
  16. package/dist/crypto/md5.d.ts +3 -0
  17. package/dist/crypto/md5.js +9 -0
  18. package/dist/crypto/md5.js.map +1 -0
  19. package/dist/crypto/mode.d.ts +5 -0
  20. package/dist/crypto/mode.js +7 -0
  21. package/dist/crypto/mode.js.map +1 -0
  22. package/dist/crypto/padding.d.ts +7 -0
  23. package/dist/crypto/padding.js +27 -0
  24. package/dist/crypto/padding.js.map +1 -0
  25. package/dist/crypto/rc4.d.ts +10 -0
  26. package/dist/crypto/rc4.js +48 -0
  27. package/dist/crypto/rc4.js.map +1 -0
  28. package/dist/crypto/sha256.d.ts +3 -0
  29. package/dist/crypto/sha256.js +9 -0
  30. package/dist/crypto/sha256.js.map +1 -0
  31. package/dist/crypto/word-array.d.ts +28 -0
  32. package/dist/crypto/word-array.js +116 -0
  33. package/dist/crypto/word-array.js.map +1 -0
  34. package/dist/index.d.ts +4 -0
  35. package/dist/index.js +5 -0
  36. package/dist/index.js.map +1 -0
  37. package/package.json +34 -0
  38. package/src/base64.ts +34 -0
  39. package/src/brotli.ts +2158 -0
  40. package/src/compression.ts +35 -0
  41. package/src/crypto/aes.ts +93 -0
  42. package/src/crypto/index.ts +7 -0
  43. package/src/crypto/md5.ts +10 -0
  44. package/src/crypto/mode.ts +11 -0
  45. package/src/crypto/padding.ts +36 -0
  46. package/src/crypto/rc4.ts +65 -0
  47. package/src/crypto/sha256.ts +10 -0
  48. package/src/crypto/word-array.ts +147 -0
  49. package/src/index.ts +4 -0
  50. package/test/base64.test.ts +173 -0
  51. package/test/brotli.test.data/0000000000000000.empty.br +1 -0
  52. package/test/brotli.test.data/126d9a84a3d1b3ad.xyzzy.br +2 -0
  53. package/test/brotli.test.data/1f39ef98802627d5.bref65536.br +0 -0
  54. package/test/brotli.test.data/24b2c7600b8207e2.random.br +0 -0
  55. package/test/brotli.test.data/5b5eb8c2e54aa1c4.fox.br +1 -0
  56. package/test/brotli.test.data/5ea84b0ab2a9d2f3.ascii.br +0 -0
  57. package/test/brotli.test.data/62652dac985a31f1.monkey.br +0 -0
  58. package/test/brotli.test.data/68333cc8433f3ab8.16k_minus_one.br +0 -0
  59. package/test/brotli.test.data/7da01857468c3de8.buffer_sized_chunks.br +0 -0
  60. package/test/brotli.test.data/89988757bded53ae.x10y10.br +0 -0
  61. package/test/brotli.test.data/940493692ce62466.E.coli.br +0 -0
  62. package/test/brotli.test.data/c3f720395238182c.world192.br +0 -0
  63. package/test/brotli.test.data/c5a4246584d690a7.16k_plus_one.br +0 -0
  64. package/test/brotli.test.data/c895e0c1b11448fa.ukkonooa.br +0 -0
  65. package/test/brotli.test.data/d238c71341928567.allbytevalues_twice.br +0 -0
  66. package/test/brotli.test.data/d38da8261aedc293.bible.br +0 -0
  67. package/test/brotli.test.data/d6a9c5da7ba30f21.allbytevalues_16k.br +0 -0
  68. package/test/brotli.test.data/f121ac88218962d7.x.br +0 -0
  69. package/test/brotli.test.data/f6083a8a3754518c.x64.br +0 -0
  70. package/test/brotli.test.file +201 -0
  71. package/test/brotli.test.file.br +0 -0
  72. package/test/brotli.test.ts +2197 -0
  73. package/test/compression.test.ts +93 -0
  74. package/test/crypto.test.ts +157 -0
  75. package/tsconfig.json +10 -0
  76. package/tsconfig.typecheck.json +14 -0
  77. package/vitest.config.ts +8 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brotli.js","sourceRoot":"","sources":["../src/brotli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type CompressionFormat = "deflate" | "deflate-raw" | "gzip";
2
+ export declare function deflate(data: Uint8Array, format?: CompressionFormat): Promise<Uint8Array<ArrayBuffer>>;
3
+ export declare function inflate(data: Uint8Array, format?: CompressionFormat): Promise<Uint8Array<ArrayBuffer>>;
@@ -0,0 +1,31 @@
1
+ function concatUint8Arrays(arrays) {
2
+ const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
3
+ const result = new Uint8Array(totalLength);
4
+ let offset = 0;
5
+ for (const arr of arrays) {
6
+ result.set(arr, offset);
7
+ offset += arr.length;
8
+ }
9
+ return result;
10
+ }
11
+ async function readAllChunks(stream) {
12
+ const reader = stream.getReader();
13
+ const chunks = [];
14
+ while (true) {
15
+ const { done, value } = await reader.read();
16
+ if (done)
17
+ break;
18
+ if (value)
19
+ chunks.push(value);
20
+ }
21
+ return concatUint8Arrays(chunks);
22
+ }
23
+ export async function deflate(data, format = "deflate") {
24
+ const stream = new Blob([data]).stream().pipeThrough(new CompressionStream(format));
25
+ return readAllChunks(stream);
26
+ }
27
+ export async function inflate(data, format = "deflate") {
28
+ const stream = new Blob([data]).stream().pipeThrough(new DecompressionStream(format));
29
+ return readAllChunks(stream);
30
+ }
31
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAEA,SAAS,iBAAiB,CAAC,MAAoB;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAkC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAgB,EAAE,SAA4B,SAAS;IACnF,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAgB,EAAE,SAA4B,SAAS;IACnF,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Mode } from "./mode.js";
2
+ import type { Padding } from "./padding.js";
3
+ import { WordArray } from "./word-array.js";
4
+ export interface CipherResult {
5
+ ciphertext: WordArray;
6
+ }
7
+ export interface AESOptions {
8
+ mode?: Mode;
9
+ padding?: Padding;
10
+ iv?: WordArray;
11
+ }
12
+ export interface AESStatic {
13
+ encrypt(message: WordArray, key: WordArray, options?: AESOptions): CipherResult;
14
+ decrypt(ciphertext: WordArray, key: WordArray, options?: AESOptions): CipherResult;
15
+ }
16
+ export declare const AES: AESStatic;
17
+ export default AES;
@@ -0,0 +1,60 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { createCipheriv, createDecipheriv } from "node:crypto";
3
+ import { CBC } from "./mode.js";
4
+ import { Pkcs7 } from "./padding.js";
5
+ import { WordArray } from "./word-array.js";
6
+ function getAlgorithm(keyBytes, mode) {
7
+ const keyBits = keyBytes.length * 8;
8
+ const modeName = mode.name.toLowerCase();
9
+ return `aes-${keyBits}-${modeName}`;
10
+ }
11
+ function encrypt(message, key, options = {}) {
12
+ const mode = options.mode || CBC;
13
+ const padding = options.padding || Pkcs7;
14
+ const keyBytes = key.toUint8Array();
15
+ const algorithm = getAlgorithm(keyBytes, mode);
16
+ // Clone and pad the message
17
+ const paddedMessage = message.clone();
18
+ padding.pad(paddedMessage, 4); // AES block size is 4 words (16 bytes)
19
+ const messageBytes = paddedMessage.toUint8Array();
20
+ // Get IV (for CBC mode)
21
+ let iv = null;
22
+ if (mode === CBC) {
23
+ iv = options.iv ? options.iv.toUint8Array() : new Uint8Array(16);
24
+ }
25
+ const cipher = createCipheriv(algorithm, keyBytes, iv);
26
+ cipher.setAutoPadding(false); // We handle padding ourselves
27
+ const encrypted = Buffer.concat([cipher.update(messageBytes), cipher.final()]);
28
+ return {
29
+ ciphertext: WordArray.fromUint8Array(new Uint8Array(encrypted)),
30
+ };
31
+ }
32
+ /**
33
+ * AES decryption using node:crypto
34
+ */
35
+ function decrypt(ciphertext, key, options = {}) {
36
+ const mode = options.mode || CBC;
37
+ const padding = options.padding || Pkcs7;
38
+ const keyBytes = key.toUint8Array();
39
+ const algorithm = getAlgorithm(keyBytes, mode);
40
+ const ciphertextBytes = ciphertext.toUint8Array();
41
+ // Get IV (for CBC mode)
42
+ let iv = null;
43
+ if (mode === CBC) {
44
+ iv = options.iv ? options.iv.toUint8Array() : new Uint8Array(16);
45
+ }
46
+ const decipher = createDecipheriv(algorithm, keyBytes, iv);
47
+ decipher.setAutoPadding(false); // We handle padding ourselves
48
+ const decrypted = Buffer.concat([decipher.update(ciphertextBytes), decipher.final()]);
49
+ const result = WordArray.fromUint8Array(new Uint8Array(decrypted));
50
+ padding.unpad(result);
51
+ return {
52
+ ciphertext: result,
53
+ };
54
+ }
55
+ export const AES = {
56
+ encrypt,
57
+ decrypt,
58
+ };
59
+ export default AES;
60
+ //# sourceMappingURL=aes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes.js","sourceRoot":"","sources":["../../src/crypto/aes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { AES } from "./aes.js";
2
+ export { MD5 } from "./md5.js";
3
+ export * as mode from "./mode.js";
4
+ export * as padding from "./padding.js";
5
+ export { RC4 } from "./rc4.js";
6
+ export { SHA256 } from "./sha256.js";
7
+ export { WordArray } from "./word-array.js";
@@ -0,0 +1,8 @@
1
+ export { AES } from "./aes.js";
2
+ export { MD5 } from "./md5.js";
3
+ export * as mode from "./mode.js";
4
+ export * as padding from "./padding.js";
5
+ export { RC4 } from "./rc4.js";
6
+ export { SHA256 } from "./sha256.js";
7
+ export { WordArray } from "./word-array.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { WordArray } from "./word-array.js";
2
+ export declare function MD5(message: WordArray | string): WordArray;
3
+ export default MD5;
@@ -0,0 +1,9 @@
1
+ import { createHash } from "node:crypto";
2
+ import { WordArray } from "./word-array.js";
3
+ export function MD5(message) {
4
+ const data = typeof message === "string" ? message : message.toUint8Array();
5
+ const hash = createHash("md5").update(data).digest();
6
+ return WordArray.fromUint8Array(hash);
7
+ }
8
+ export default MD5;
9
+ //# sourceMappingURL=md5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md5.js","sourceRoot":"","sources":["../../src/crypto/md5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,UAAU,GAAG,CAAC,OAA2B;IAC7C,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACrD,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,GAAG,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface Mode {
2
+ name: string;
3
+ }
4
+ export declare const CBC: Mode;
5
+ export declare const ECB: Mode;
@@ -0,0 +1,7 @@
1
+ export const CBC = {
2
+ name: "CBC",
3
+ };
4
+ export const ECB = {
5
+ name: "ECB",
6
+ };
7
+ //# sourceMappingURL=mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/crypto/mode.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,GAAG,GAAS;IACvB,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAS;IACvB,IAAI,EAAE,KAAK;CACZ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { WordArray } from "./word-array.js";
2
+ export interface Padding {
3
+ pad(data: WordArray, blockSize: number): void;
4
+ unpad(data: WordArray): void;
5
+ }
6
+ export declare const Pkcs7: Padding;
7
+ export declare const NoPadding: Padding;
@@ -0,0 +1,27 @@
1
+ import { WordArray } from "./word-array.js";
2
+ export const Pkcs7 = {
3
+ pad(data, blockSize) {
4
+ const blockSizeBytes = blockSize * 4;
5
+ const nPaddingBytes = blockSizeBytes - (data.sigBytes % blockSizeBytes);
6
+ const paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
7
+ const paddingWords = [];
8
+ for (let i = 0; i < nPaddingBytes; i += 4) {
9
+ paddingWords.push(paddingWord);
10
+ }
11
+ const padding = new WordArray(paddingWords, nPaddingBytes);
12
+ data.concat(padding);
13
+ },
14
+ unpad(data) {
15
+ const nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
16
+ data.sigBytes -= nPaddingBytes;
17
+ },
18
+ };
19
+ export const NoPadding = {
20
+ pad(_data, _blockSize) {
21
+ // No padding
22
+ },
23
+ unpad(_data) {
24
+ // No unpadding
25
+ },
26
+ };
27
+ //# sourceMappingURL=padding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"padding.js","sourceRoot":"","sources":["../../src/crypto/padding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,MAAM,CAAC,MAAM,KAAK,GAAY;IAC5B,GAAG,CAAC,IAAe,EAAE,SAAiB;QACpC,MAAM,cAAc,GAAG,SAAS,GAAG,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;QACxE,MAAM,WAAW,GACf,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC;QAEvF,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAe;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QACnE,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC;IACjC,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,GAAG,CAAC,KAAgB,EAAE,UAAkB;QACtC,aAAa;IACf,CAAC;IACD,KAAK,CAAC,KAAgB;QACpB,eAAe;IACjB,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { WordArray } from "./word-array.js";
2
+ export interface CipherResult {
3
+ ciphertext: WordArray;
4
+ }
5
+ export interface RC4Static {
6
+ encrypt(message: WordArray, key: WordArray): CipherResult;
7
+ decrypt(ciphertext: WordArray, key: WordArray): CipherResult;
8
+ }
9
+ export declare const RC4: RC4Static;
10
+ export default RC4;
@@ -0,0 +1,48 @@
1
+ import { WordArray } from "./word-array.js";
2
+ function rc4Process(data, key) {
3
+ // Key Scheduling Algorithm (KSA)
4
+ const S = new Uint8Array(256);
5
+ for (let i = 0; i < 256; i++) {
6
+ S[i] = i;
7
+ }
8
+ let j = 0;
9
+ for (let i = 0; i < 256; i++) {
10
+ j = (j + S[i] + key[i % key.length]) & 0xff;
11
+ // Swap S[i] and S[j]
12
+ const temp = S[i];
13
+ S[i] = S[j];
14
+ S[j] = temp;
15
+ }
16
+ // Pseudo-Random Generation Algorithm (PRGA)
17
+ const result = new Uint8Array(data.length);
18
+ let i = 0;
19
+ j = 0;
20
+ for (let k = 0; k < data.length; k++) {
21
+ i = (i + 1) & 0xff;
22
+ j = (j + S[i]) & 0xff;
23
+ // Swap S[i] and S[j]
24
+ const temp = S[i];
25
+ S[i] = S[j];
26
+ S[j] = temp;
27
+ // Generate keystream byte and XOR with data
28
+ result[k] = data[k] ^ S[(S[i] + S[j]) & 0xff];
29
+ }
30
+ return result;
31
+ }
32
+ function encrypt(message, key) {
33
+ const keyBytes = key.toUint8Array();
34
+ const messageBytes = message.toUint8Array();
35
+ const encrypted = rc4Process(messageBytes, keyBytes);
36
+ return {
37
+ ciphertext: WordArray.fromUint8Array(encrypted),
38
+ };
39
+ }
40
+ function decrypt(ciphertext, key) {
41
+ return encrypt(ciphertext, key);
42
+ }
43
+ export const RC4 = {
44
+ encrypt,
45
+ decrypt,
46
+ };
47
+ export default RC4;
48
+ //# sourceMappingURL=rc4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rc4.js","sourceRoot":"","sources":["../../src/crypto/rc4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C,SAAS,UAAU,CAAC,IAAgB,EAAE,GAAe;IACnD,iCAAiC;IACjC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5C,qBAAqB;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,CAAC,GAAG,CAAC,CAAC;IACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACnB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,qBAAqB;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACZ,4CAA4C;QAC5C,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,OAAkB,EAAE,GAAc;IACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAErD,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,UAAqB,EAAE,GAAc;IACpD,OAAO,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAc;IAC5B,OAAO;IACP,OAAO;CACR,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { WordArray } from "./word-array.js";
2
+ export declare function SHA256(message: WordArray | string): WordArray;
3
+ export default SHA256;
@@ -0,0 +1,9 @@
1
+ import { createHash } from "node:crypto";
2
+ import { WordArray } from "./word-array.js";
3
+ export function SHA256(message) {
4
+ const data = typeof message === "string" ? message : message.toUint8Array();
5
+ const hash = createHash("sha256").update(data).digest();
6
+ return WordArray.fromUint8Array(hash);
7
+ }
8
+ export default SHA256;
9
+ //# sourceMappingURL=sha256.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha256.js","sourceRoot":"","sources":["../../src/crypto/sha256.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,UAAU,MAAM,CAAC,OAA2B;IAChD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACxD,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,28 @@
1
+ export interface Encoder {
2
+ stringify(wordArray: WordArray): string;
3
+ parse(str: string): WordArray;
4
+ }
5
+ export declare class WordArray {
6
+ words: number[];
7
+ sigBytes: number;
8
+ constructor(words?: number[], sigBytes?: number);
9
+ static create(words?: number[], sigBytes?: number): WordArray;
10
+ /**
11
+ * Creates a word array filled with random bytes.
12
+ */
13
+ static random(nBytes: number): WordArray;
14
+ /**
15
+ * Create WordArray from Uint8Array
16
+ */
17
+ static fromUint8Array(bytes: Uint8Array): WordArray;
18
+ /**
19
+ * Convert WordArray to Uint8Array
20
+ */
21
+ toUint8Array(): Uint8Array;
22
+ toString(encoder?: Encoder): string;
23
+ concat(wordArray: WordArray): WordArray;
24
+ clamp(): void;
25
+ clone(): WordArray;
26
+ }
27
+ export declare const Hex: Encoder;
28
+ export declare const Latin1: Encoder;