@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.
- package/dist/base64.d.ts +7 -0
- package/dist/base64.js +24 -0
- package/dist/base64.js.map +1 -0
- package/dist/brotli.d.ts +9 -0
- package/dist/brotli.js +2015 -0
- package/dist/brotli.js.map +1 -0
- package/dist/compression.d.ts +3 -0
- package/dist/compression.js +31 -0
- package/dist/compression.js.map +1 -0
- package/dist/crypto/aes.d.ts +17 -0
- package/dist/crypto/aes.js +60 -0
- package/dist/crypto/aes.js.map +1 -0
- package/dist/crypto/index.d.ts +7 -0
- package/dist/crypto/index.js +8 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/md5.d.ts +3 -0
- package/dist/crypto/md5.js +9 -0
- package/dist/crypto/md5.js.map +1 -0
- package/dist/crypto/mode.d.ts +5 -0
- package/dist/crypto/mode.js +7 -0
- package/dist/crypto/mode.js.map +1 -0
- package/dist/crypto/padding.d.ts +7 -0
- package/dist/crypto/padding.js +27 -0
- package/dist/crypto/padding.js.map +1 -0
- package/dist/crypto/rc4.d.ts +10 -0
- package/dist/crypto/rc4.js +48 -0
- package/dist/crypto/rc4.js.map +1 -0
- package/dist/crypto/sha256.d.ts +3 -0
- package/dist/crypto/sha256.js +9 -0
- package/dist/crypto/sha256.js.map +1 -0
- package/dist/crypto/word-array.d.ts +28 -0
- package/dist/crypto/word-array.js +116 -0
- package/dist/crypto/word-array.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/package.json +34 -0
- package/src/base64.ts +34 -0
- package/src/brotli.ts +2158 -0
- package/src/compression.ts +35 -0
- package/src/crypto/aes.ts +93 -0
- package/src/crypto/index.ts +7 -0
- package/src/crypto/md5.ts +10 -0
- package/src/crypto/mode.ts +11 -0
- package/src/crypto/padding.ts +36 -0
- package/src/crypto/rc4.ts +65 -0
- package/src/crypto/sha256.ts +10 -0
- package/src/crypto/word-array.ts +147 -0
- package/src/index.ts +4 -0
- package/test/base64.test.ts +173 -0
- package/test/brotli.test.data/0000000000000000.empty.br +1 -0
- package/test/brotli.test.data/126d9a84a3d1b3ad.xyzzy.br +2 -0
- package/test/brotli.test.data/1f39ef98802627d5.bref65536.br +0 -0
- package/test/brotli.test.data/24b2c7600b8207e2.random.br +0 -0
- package/test/brotli.test.data/5b5eb8c2e54aa1c4.fox.br +1 -0
- package/test/brotli.test.data/5ea84b0ab2a9d2f3.ascii.br +0 -0
- package/test/brotli.test.data/62652dac985a31f1.monkey.br +0 -0
- package/test/brotli.test.data/68333cc8433f3ab8.16k_minus_one.br +0 -0
- package/test/brotli.test.data/7da01857468c3de8.buffer_sized_chunks.br +0 -0
- package/test/brotli.test.data/89988757bded53ae.x10y10.br +0 -0
- package/test/brotli.test.data/940493692ce62466.E.coli.br +0 -0
- package/test/brotli.test.data/c3f720395238182c.world192.br +0 -0
- package/test/brotli.test.data/c5a4246584d690a7.16k_plus_one.br +0 -0
- package/test/brotli.test.data/c895e0c1b11448fa.ukkonooa.br +0 -0
- package/test/brotli.test.data/d238c71341928567.allbytevalues_twice.br +0 -0
- package/test/brotli.test.data/d38da8261aedc293.bible.br +0 -0
- package/test/brotli.test.data/d6a9c5da7ba30f21.allbytevalues_16k.br +0 -0
- package/test/brotli.test.data/f121ac88218962d7.x.br +0 -0
- package/test/brotli.test.data/f6083a8a3754518c.x64.br +0 -0
- package/test/brotli.test.file +201 -0
- package/test/brotli.test.file.br +0 -0
- package/test/brotli.test.ts +2197 -0
- package/test/compression.test.ts +93 -0
- package/test/crypto.test.ts +157 -0
- package/tsconfig.json +10 -0
- package/tsconfig.typecheck.json +14 -0
- 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,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,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 @@
|
|
|
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,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,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;
|