scanoss 0.15.6 → 0.16.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/CHANGELOG.md +53 -87
- package/LICENSE +20 -20
- package/README.md +75 -3
- package/assets/ReportHTMLTemplate/index.html +11 -8
- package/assets/data/scanoss-crypto-library-rules.json +2930 -0
- package/build/main/cli/bin/cli-bin.js +6 -2
- package/build/main/cli/commands/crypto.js +14 -7
- package/build/main/cli/commands/scan.js +68 -25
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +19 -0
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +27 -0
- package/build/main/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.d.ts +1 -0
- package/build/main/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.js +39 -0
- package/build/main/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.d.ts +42 -0
- package/build/main/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +87 -0
- package/build/main/sdk/Cryptography/{CryptoDef/CryptoDef.d.ts → Algorithm/Files/Helper/Helper.d.ts} +1 -1
- package/build/main/sdk/Cryptography/{CryptoDef/CryptoDef.js → Algorithm/Files/Helper/Helper.js} +1 -1
- package/build/main/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.d.ts +2 -2
- package/build/main/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.js +1 -1
- package/build/main/sdk/Cryptography/BaseCryptographyScanner.d.ts +25 -0
- package/build/main/sdk/Cryptography/BaseCryptographyScanner.js +23 -0
- package/build/main/sdk/Cryptography/CryptoCfg.d.ts +32 -5
- package/build/main/sdk/Cryptography/CryptoCfg.js +35 -5
- package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +15 -21
- package/build/main/sdk/Cryptography/CryptographyScanner.js +31 -41
- package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +47 -3
- package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +32 -0
- package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +66 -0
- package/build/main/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.d.ts +36 -0
- package/build/main/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.js +65 -0
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +19 -0
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +27 -0
- package/build/main/sdk/Cryptography/Hint/Files/FileHintScanner.d.ts +35 -0
- package/build/main/sdk/Cryptography/Hint/Files/FileHintScanner.js +69 -0
- package/build/main/sdk/Cryptography/Hint/Files/HintProcessor.d.ts +1 -0
- package/build/main/sdk/Cryptography/Hint/Files/HintProcessor.js +34 -0
- package/build/main/sdk/Filtering/Filtering.js +1 -2
- package/build/main/sdk/Logger.d.ts +2 -0
- package/build/main/sdk/Logger.js +7 -2
- package/build/main/sdk/Report/DataLayer/DataLayerTypes.d.ts +8 -4
- package/build/main/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.d.ts +7 -7
- package/build/main/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.js +71 -11
- package/build/main/sdk/Services/Grpc/BaseService.js +1 -1
- package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +3 -0
- package/build/main/sdk/Services/Grpc/CryptographyService.js +16 -1
- package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +72 -0
- package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +87 -3
- package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1987 -127
- package/build/main/sdk/Utils/Concurrency/Job.d.ts +8 -0
- package/build/main/sdk/Utils/Concurrency/Job.js +17 -0
- package/build/main/sdk/Utils/Concurrency/JobProcessor.d.ts +10 -0
- package/build/main/sdk/Utils/Concurrency/JobProcessor.js +51 -0
- package/build/main/sdk/Utils/Concurrency/WorkerPool.d.ts +14 -0
- package/build/main/sdk/Utils/Concurrency/WorkerPool.js +69 -0
- package/build/main/sdk/Utils/Concurrency/types.d.ts +18 -0
- package/build/main/sdk/Utils/Concurrency/types.js +3 -0
- package/build/main/sdk/scanner/Scanner.d.ts +1 -1
- package/build/main/sdk/scanner/Scanner.js +16 -6
- package/build/main/sdk/scanner/ScannerTypes.js +1 -1
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/cli/bin/cli-bin.js +6 -2
- package/build/module/cli/commands/crypto.js +14 -7
- package/build/module/cli/commands/scan.js +89 -46
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +19 -0
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +23 -0
- package/build/module/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.d.ts +1 -0
- package/build/module/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.js +36 -0
- package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.d.ts +42 -0
- package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +80 -0
- package/build/module/sdk/Cryptography/{CryptoDef/CryptoDef.d.ts → Algorithm/Files/Helper/Helper.d.ts} +1 -1
- package/build/module/sdk/Cryptography/{CryptoDef/CryptoDef.js → Algorithm/Files/Helper/Helper.js} +1 -1
- package/build/module/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.d.ts +2 -2
- package/build/module/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.js +1 -1
- package/build/module/sdk/Cryptography/BaseCryptographyScanner.d.ts +25 -0
- package/build/module/sdk/Cryptography/BaseCryptographyScanner.js +21 -0
- package/build/module/sdk/Cryptography/CryptoCfg.d.ts +32 -5
- package/build/module/sdk/Cryptography/CryptoCfg.js +39 -6
- package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +15 -21
- package/build/module/sdk/Cryptography/CryptographyScanner.js +32 -39
- package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +47 -3
- package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +32 -0
- package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +60 -0
- package/build/module/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.d.ts +36 -0
- package/build/module/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.js +59 -0
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +19 -0
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +23 -0
- package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.d.ts +35 -0
- package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.js +62 -0
- package/build/module/sdk/Cryptography/Hint/Files/HintProcessor.d.ts +1 -0
- package/build/module/sdk/Cryptography/Hint/Files/HintProcessor.js +31 -0
- package/build/module/sdk/Filtering/Filtering.js +1 -2
- package/build/module/sdk/Logger.d.ts +2 -0
- package/build/module/sdk/Logger.js +8 -2
- package/build/module/sdk/Report/DataLayer/DataLayerTypes.d.ts +8 -4
- package/build/module/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.d.ts +7 -7
- package/build/module/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.js +73 -14
- package/build/module/sdk/Services/Grpc/BaseService.js +1 -1
- package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +3 -0
- package/build/module/sdk/Services/Grpc/CryptographyService.js +16 -1
- package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +72 -0
- package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +87 -3
- package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1987 -127
- package/build/module/sdk/Utils/Concurrency/Job.d.ts +8 -0
- package/build/module/sdk/Utils/Concurrency/Job.js +14 -0
- package/build/module/sdk/Utils/Concurrency/JobProcessor.d.ts +10 -0
- package/build/module/sdk/Utils/Concurrency/JobProcessor.js +47 -0
- package/build/module/sdk/Utils/Concurrency/WorkerPool.d.ts +14 -0
- package/build/module/sdk/Utils/Concurrency/WorkerPool.js +65 -0
- package/build/module/sdk/Utils/Concurrency/types.d.ts +18 -0
- package/build/module/sdk/Utils/Concurrency/types.js +2 -0
- package/build/module/sdk/scanner/Scanner.d.ts +1 -1
- package/build/module/sdk/scanner/Scanner.js +16 -7
- package/build/module/sdk/scanner/ScannerTypes.js +1 -1
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/build/main/sdk/Cryptography/CryptoProvider/LocalCrypto.d.ts +0 -21
- package/build/main/sdk/Cryptography/CryptoProvider/LocalCrypto.js +0 -37
- package/build/main/sdk/Cryptography/Worker/ThreadPool.d.ts +0 -21
- package/build/main/sdk/Cryptography/Worker/ThreadPool.js +0 -87
- package/build/main/sdk/Cryptography/Worker/Worker.d.ts +0 -15
- package/build/main/sdk/Cryptography/Worker/Worker.js +0 -69
- package/build/main/sdk/Cryptography/utils/adapters/cryptoAdapters.d.ts +0 -8
- package/build/main/sdk/Cryptography/utils/adapters/cryptoAdapters.js +0 -15
- package/build/module/sdk/Cryptography/CryptoProvider/LocalCrypto.d.ts +0 -21
- package/build/module/sdk/Cryptography/CryptoProvider/LocalCrypto.js +0 -36
- package/build/module/sdk/Cryptography/Worker/ThreadPool.d.ts +0 -21
- package/build/module/sdk/Cryptography/Worker/ThreadPool.js +0 -89
- package/build/module/sdk/Cryptography/Worker/Worker.d.ts +0 -15
- package/build/module/sdk/Cryptography/Worker/Worker.js +0 -66
- package/build/module/sdk/Cryptography/utils/adapters/cryptoAdapters.d.ts +0 -8
- package/build/module/sdk/Cryptography/utils/adapters/cryptoAdapters.js +0 -12
- /package/assets/data/{defaultCryptoRules.json → scanoss-crypto-algorithm-rules.json} +0 -0
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Worker = void 0;
|
|
4
|
-
const worker_threads_1 = require("worker_threads");
|
|
5
|
-
const stringWorker = `
|
|
6
|
-
const { parentPort } = require('worker_threads');
|
|
7
|
-
const fs = require('fs');
|
|
8
|
-
|
|
9
|
-
parentPort.on('message', async (data) => {
|
|
10
|
-
|
|
11
|
-
const MAX_FILE_SIZE = 2 * 1024 * 1024 * 1024;
|
|
12
|
-
|
|
13
|
-
const { item, rules , cryptoMapper, id } = data;
|
|
14
|
-
|
|
15
|
-
const cryptoFound = new Array();
|
|
16
|
-
const stats = await fs.promises.stat(item.file);
|
|
17
|
-
if (stats.size > MAX_FILE_SIZE) {
|
|
18
|
-
item.algorithms = [];
|
|
19
|
-
parentPort.postMessage({ result: item, id });
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
let content = fs.readFileSync(item.file, 'utf-8');
|
|
24
|
-
rules.forEach((value, key) => {
|
|
25
|
-
try {
|
|
26
|
-
const matches = content.match(value);
|
|
27
|
-
if (matches) {
|
|
28
|
-
cryptoFound.push(key);
|
|
29
|
-
}
|
|
30
|
-
} catch (e){
|
|
31
|
-
console.error(e);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
const results = [];
|
|
35
|
-
cryptoFound.forEach((cf)=>{
|
|
36
|
-
results.push(cryptoMapper.get(cf));
|
|
37
|
-
});
|
|
38
|
-
item.algorithms = results;
|
|
39
|
-
parentPort.postMessage({ result: item, id });
|
|
40
|
-
});
|
|
41
|
-
`;
|
|
42
|
-
class Worker extends worker_threads_1.Worker {
|
|
43
|
-
constructor() {
|
|
44
|
-
super(stringWorker, { eval: true });
|
|
45
|
-
this.free = true;
|
|
46
|
-
}
|
|
47
|
-
getId() {
|
|
48
|
-
return this.threadId;
|
|
49
|
-
}
|
|
50
|
-
release() {
|
|
51
|
-
this.free = true;
|
|
52
|
-
}
|
|
53
|
-
isFree() {
|
|
54
|
-
return this.free;
|
|
55
|
-
}
|
|
56
|
-
on(event, listener) {
|
|
57
|
-
if (event === 'error') {
|
|
58
|
-
this.free = true;
|
|
59
|
-
}
|
|
60
|
-
// Call super.on with the provided arguments
|
|
61
|
-
return super.on(event, listener);
|
|
62
|
-
}
|
|
63
|
-
run(value, transferList) {
|
|
64
|
-
this.free = false;
|
|
65
|
-
this.postMessage({ ...value, id: this.threadId });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.Worker = Worker;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvV29ya2VyL1dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBOEU7QUFJOUUsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9DcEIsQ0FBQztBQU9GLE1BQWEsTUFBTyxTQUFRLHVCQUFDO0lBSzNCO1FBQ0UsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUNoQixJQUFJLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDO1FBQ0QsNENBQTRDO1FBQzNDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFcEMsQ0FBQztJQUNNLEdBQUcsQ0FBRSxLQUFVLEVBQUUsWUFBOEM7UUFDcEUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBRUY7QUFuQ0Qsd0JBbUNDIn0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CryptoItem } from '../../Scanneable/CryptoItem';
|
|
2
|
-
import { ILocalCryptographyResponse } from '../../CryptographyTypes';
|
|
3
|
-
/**
|
|
4
|
-
* Maps an array of CryptoItem objects to an ILocalCryptographyResponse object.
|
|
5
|
-
* @param ci An array of CryptoItem objects to map.
|
|
6
|
-
* @returns An ILocalCryptographyResponse object containing mapped cryptographic items.
|
|
7
|
-
*/
|
|
8
|
-
export declare function mapToILocalCryptographyResponse(ci: Array<CryptoItem>): ILocalCryptographyResponse;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapToILocalCryptographyResponse = mapToILocalCryptographyResponse;
|
|
4
|
-
/**
|
|
5
|
-
* Maps an array of CryptoItem objects to an ILocalCryptographyResponse object.
|
|
6
|
-
* @param ci An array of CryptoItem objects to map.
|
|
7
|
-
* @returns An ILocalCryptographyResponse object containing mapped cryptographic items.
|
|
8
|
-
*/
|
|
9
|
-
function mapToILocalCryptographyResponse(ci) {
|
|
10
|
-
const fileList = ci.map((c) => ({ file: c.file, algorithms: c.algorithms }));
|
|
11
|
-
return {
|
|
12
|
-
fileList
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvQWRhcHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS91dGlscy9hZGFwdGVycy9jcnlwdG9BZGFwdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLDBFQUtDO0FBVkQ7Ozs7R0FJRztBQUNILFNBQWdCLCtCQUErQixDQUFDLEVBQXFCO0lBQ25FLE1BQU0sUUFBUSxHQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEcsT0FBTztRQUNMLFFBQVE7S0FDVCxDQUFBO0FBQ0gsQ0FBQyJ9
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { CryptoItem } from '../Scanneable/CryptoItem';
|
|
2
|
-
import { CryptoAlgorithmRules } from '../CryptographyTypes';
|
|
3
|
-
/**
|
|
4
|
-
* Represents a CryptoCalculator used for searching cryptographic algorithms in files.
|
|
5
|
-
*/
|
|
6
|
-
export declare class LocalCrypto {
|
|
7
|
-
private cryptoMapper;
|
|
8
|
-
private cryptoRules;
|
|
9
|
-
private threads;
|
|
10
|
-
/**
|
|
11
|
-
* Constructs a new LocalCrypto.
|
|
12
|
-
* @param cryptoRules An array of CryptoAlgorithmRules used to create the search rules.
|
|
13
|
-
* @param threads Number of threads to be use to scan local cryptography (default = 5).
|
|
14
|
-
*/
|
|
15
|
-
constructor(cryptoRules: Array<CryptoAlgorithmRules>, threads: number);
|
|
16
|
-
/**
|
|
17
|
-
* Searches for cryptographic algorithms in the content of a files.
|
|
18
|
-
* @param files The files to search.
|
|
19
|
-
*/
|
|
20
|
-
search(files: Array<string>): Promise<Array<CryptoItem>>;
|
|
21
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { CryptoItem } from '../Scanneable/CryptoItem';
|
|
2
|
-
import { createCryptoKeywordMapper, getCryptoMapper, } from '../CryptoDef/CryptoDef';
|
|
3
|
-
import { ThreadPool } from '../Worker/ThreadPool';
|
|
4
|
-
/**
|
|
5
|
-
* Represents a CryptoCalculator used for searching cryptographic algorithms in files.
|
|
6
|
-
*/
|
|
7
|
-
export class LocalCrypto {
|
|
8
|
-
cryptoMapper;
|
|
9
|
-
cryptoRules;
|
|
10
|
-
threads;
|
|
11
|
-
/**
|
|
12
|
-
* Constructs a new LocalCrypto.
|
|
13
|
-
* @param cryptoRules An array of CryptoAlgorithmRules used to create the search rules.
|
|
14
|
-
* @param threads Number of threads to be use to scan local cryptography (default = 5).
|
|
15
|
-
*/
|
|
16
|
-
constructor(cryptoRules, threads) {
|
|
17
|
-
this.cryptoRules = createCryptoKeywordMapper(cryptoRules);
|
|
18
|
-
this.cryptoMapper = getCryptoMapper(cryptoRules);
|
|
19
|
-
this.threads = threads;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Searches for cryptographic algorithms in the content of a files.
|
|
23
|
-
* @param files The files to search.
|
|
24
|
-
*/
|
|
25
|
-
async search(files) {
|
|
26
|
-
if (files.length <= 0)
|
|
27
|
-
return [];
|
|
28
|
-
const threadPool = new ThreadPool(this.threads, this.cryptoRules, this.cryptoMapper);
|
|
29
|
-
files.forEach((f) => {
|
|
30
|
-
threadPool.enqueueTask(new CryptoItem(f));
|
|
31
|
-
});
|
|
32
|
-
await threadPool.init();
|
|
33
|
-
return await threadPool.processQueue();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9DcnlwdG9Qcm92aWRlci9Mb2NhbENyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUNMLHlCQUF5QixFQUFFLGVBQWUsR0FDM0MsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUVkLFlBQVksQ0FBK0I7SUFFM0MsV0FBVyxDQUFzQjtJQUVqQyxPQUFPLENBQVM7SUFFeEI7Ozs7T0FJRztJQUNILFlBQVksV0FBd0MsRUFBRSxPQUFlO1FBQ25FLElBQUksQ0FBQyxXQUFXLEdBQUcseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FDRiJ9
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { CryptoAlgorithm } from '../CryptographyTypes';
|
|
2
|
-
import { CryptoItem } from '../Scanneable/CryptoItem';
|
|
3
|
-
export declare class ThreadPool {
|
|
4
|
-
private readonly maxWorkers;
|
|
5
|
-
private readonly workers;
|
|
6
|
-
private readonly jobsQueue;
|
|
7
|
-
private readonly cryptoRules;
|
|
8
|
-
private readonly cryptoMapper;
|
|
9
|
-
private results;
|
|
10
|
-
private activeWorkers;
|
|
11
|
-
private resolve;
|
|
12
|
-
private reject;
|
|
13
|
-
constructor(maxWorkers: number, rules: Map<string, RegExp>, cryptoMapper: Map<string, CryptoAlgorithm>);
|
|
14
|
-
enqueueTask(item: CryptoItem): Promise<unknown>;
|
|
15
|
-
init(): Promise<void>;
|
|
16
|
-
private releaseWorker;
|
|
17
|
-
private next;
|
|
18
|
-
private destroyAllWorkers;
|
|
19
|
-
processQueue(): Promise<Array<CryptoItem>>;
|
|
20
|
-
private processItem;
|
|
21
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Worker } from './Worker';
|
|
2
|
-
export class ThreadPool {
|
|
3
|
-
maxWorkers;
|
|
4
|
-
workers = [];
|
|
5
|
-
jobsQueue;
|
|
6
|
-
cryptoRules;
|
|
7
|
-
cryptoMapper;
|
|
8
|
-
results = [];
|
|
9
|
-
activeWorkers = 0;
|
|
10
|
-
resolve;
|
|
11
|
-
reject;
|
|
12
|
-
constructor(maxWorkers = 3, rules, cryptoMapper) {
|
|
13
|
-
this.maxWorkers = maxWorkers;
|
|
14
|
-
this.workers = [];
|
|
15
|
-
this.jobsQueue = [];
|
|
16
|
-
this.cryptoRules = rules;
|
|
17
|
-
this.cryptoMapper = cryptoMapper;
|
|
18
|
-
}
|
|
19
|
-
enqueueTask(item) {
|
|
20
|
-
return new Promise((resolve, reject) => {
|
|
21
|
-
const job = { item, resolve, reject };
|
|
22
|
-
this.jobsQueue.push(job);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
async init() {
|
|
26
|
-
for (let i = 0; i < this.maxWorkers; i++) {
|
|
27
|
-
const worker = new Worker();
|
|
28
|
-
worker.on('message', async (item) => {
|
|
29
|
-
this.results.push(item.result);
|
|
30
|
-
this.releaseWorker(item.id);
|
|
31
|
-
await this.next();
|
|
32
|
-
});
|
|
33
|
-
// TODO: See what can be done in case an error on the thread
|
|
34
|
-
worker.on('error', async (error) => {
|
|
35
|
-
console.log(error);
|
|
36
|
-
this.releaseWorker(worker.getId());
|
|
37
|
-
await this.next();
|
|
38
|
-
});
|
|
39
|
-
this.workers.push(worker);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
releaseWorker(id) {
|
|
43
|
-
const wId = this.workers.findIndex(w => w.getId() === id);
|
|
44
|
-
const w = this.workers[wId];
|
|
45
|
-
w.release();
|
|
46
|
-
return w.getId();
|
|
47
|
-
}
|
|
48
|
-
async next() {
|
|
49
|
-
this.activeWorkers -= 1;
|
|
50
|
-
if (this.activeWorkers === 0 && this.jobsQueue.length === 0) {
|
|
51
|
-
await this.destroyAllWorkers();
|
|
52
|
-
this.resolve(this.results);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.processItem();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
async destroyAllWorkers() {
|
|
59
|
-
for (const worker of this.workers) {
|
|
60
|
-
await worker.terminate(); // Terminate each worker
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async processQueue() {
|
|
64
|
-
return new Promise(async (resolve, reject) => {
|
|
65
|
-
this.resolve = resolve;
|
|
66
|
-
this.reject = reject;
|
|
67
|
-
this.processItem();
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
processItem() {
|
|
71
|
-
if (this.workers.length > 0 && this.jobsQueue.length > 0) {
|
|
72
|
-
const freeWorkerIndices = this.workers.reduce((indices, worker, index) => {
|
|
73
|
-
if (worker.isFree()) {
|
|
74
|
-
indices.push(index);
|
|
75
|
-
}
|
|
76
|
-
return indices;
|
|
77
|
-
}, []);
|
|
78
|
-
freeWorkerIndices.forEach(workerIndex => {
|
|
79
|
-
if (this.jobsQueue.length <= 0)
|
|
80
|
-
return;
|
|
81
|
-
const { item, reject } = this.jobsQueue.shift();
|
|
82
|
-
const worker = this.workers[workerIndex];
|
|
83
|
-
worker.run({ item, rules: this.cryptoRules, cryptoMapper: this.cryptoMapper });
|
|
84
|
-
this.activeWorkers += 1;
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhyZWFkUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L1dvcmtlci9UaHJlYWRQb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBbUIsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRW5ELE1BQU0sT0FBTyxVQUFVO0lBRUosVUFBVSxDQUFTO0lBRW5CLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBRTVCLFNBQVMsQ0FBTTtJQUVmLFdBQVcsQ0FBc0I7SUFFakMsWUFBWSxDQUErQjtJQUVwRCxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRWIsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUVsQixPQUFPLENBQUM7SUFFUixNQUFNLENBQUM7SUFDZixZQUFZLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBeUIsRUFBRSxZQUEwQztRQUMvRixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWdCO1FBQzFCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxH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
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { TransferListItem, Worker as W } from 'worker_threads';
|
|
2
|
-
import { CryptoItem } from '../Scanneable/CryptoItem';
|
|
3
|
-
export interface IWorkerResponse {
|
|
4
|
-
result: CryptoItem;
|
|
5
|
-
id: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class Worker extends W {
|
|
8
|
-
private free;
|
|
9
|
-
constructor();
|
|
10
|
-
getId(): number;
|
|
11
|
-
release(): void;
|
|
12
|
-
isFree(): boolean;
|
|
13
|
-
on(event: any, listener: any): this;
|
|
14
|
-
run(value: any, transferList?: ReadonlyArray<TransferListItem>): void;
|
|
15
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { Worker as W } from 'worker_threads';
|
|
2
|
-
const stringWorker = `
|
|
3
|
-
const { parentPort } = require('worker_threads');
|
|
4
|
-
const fs = require('fs');
|
|
5
|
-
|
|
6
|
-
parentPort.on('message', async (data) => {
|
|
7
|
-
|
|
8
|
-
const MAX_FILE_SIZE = 2 * 1024 * 1024 * 1024;
|
|
9
|
-
|
|
10
|
-
const { item, rules , cryptoMapper, id } = data;
|
|
11
|
-
|
|
12
|
-
const cryptoFound = new Array();
|
|
13
|
-
const stats = await fs.promises.stat(item.file);
|
|
14
|
-
if (stats.size > MAX_FILE_SIZE) {
|
|
15
|
-
item.algorithms = [];
|
|
16
|
-
parentPort.postMessage({ result: item, id });
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
let content = fs.readFileSync(item.file, 'utf-8');
|
|
21
|
-
rules.forEach((value, key) => {
|
|
22
|
-
try {
|
|
23
|
-
const matches = content.match(value);
|
|
24
|
-
if (matches) {
|
|
25
|
-
cryptoFound.push(key);
|
|
26
|
-
}
|
|
27
|
-
} catch (e){
|
|
28
|
-
console.error(e);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const results = [];
|
|
32
|
-
cryptoFound.forEach((cf)=>{
|
|
33
|
-
results.push(cryptoMapper.get(cf));
|
|
34
|
-
});
|
|
35
|
-
item.algorithms = results;
|
|
36
|
-
parentPort.postMessage({ result: item, id });
|
|
37
|
-
});
|
|
38
|
-
`;
|
|
39
|
-
export class Worker extends W {
|
|
40
|
-
free;
|
|
41
|
-
constructor() {
|
|
42
|
-
super(stringWorker, { eval: true });
|
|
43
|
-
this.free = true;
|
|
44
|
-
}
|
|
45
|
-
getId() {
|
|
46
|
-
return this.threadId;
|
|
47
|
-
}
|
|
48
|
-
release() {
|
|
49
|
-
this.free = true;
|
|
50
|
-
}
|
|
51
|
-
isFree() {
|
|
52
|
-
return this.free;
|
|
53
|
-
}
|
|
54
|
-
on(event, listener) {
|
|
55
|
-
if (event === 'error') {
|
|
56
|
-
this.free = true;
|
|
57
|
-
}
|
|
58
|
-
// Call super.on with the provided arguments
|
|
59
|
-
return super.on(event, listener);
|
|
60
|
-
}
|
|
61
|
-
run(value, transferList) {
|
|
62
|
-
this.free = false;
|
|
63
|
-
this.postMessage({ ...value, id: this.threadId });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvV29ya2VyL1dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLE1BQU0sSUFBSSxDQUFDLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFJOUUsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9DcEIsQ0FBQztBQU9GLE1BQU0sT0FBTyxNQUFPLFNBQVEsQ0FBQztJQUVuQixJQUFJLENBQVc7SUFHdkI7UUFDRSxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVNLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRO1FBQ2hCLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFDRCw0Q0FBNEM7UUFDM0MsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVwQyxDQUFDO0lBQ00sR0FBRyxDQUFFLEtBQVUsRUFBRSxZQUE4QztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FFRiJ9
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CryptoItem } from '../../Scanneable/CryptoItem';
|
|
2
|
-
import { ILocalCryptographyResponse } from '../../CryptographyTypes';
|
|
3
|
-
/**
|
|
4
|
-
* Maps an array of CryptoItem objects to an ILocalCryptographyResponse object.
|
|
5
|
-
* @param ci An array of CryptoItem objects to map.
|
|
6
|
-
* @returns An ILocalCryptographyResponse object containing mapped cryptographic items.
|
|
7
|
-
*/
|
|
8
|
-
export declare function mapToILocalCryptographyResponse(ci: Array<CryptoItem>): ILocalCryptographyResponse;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Maps an array of CryptoItem objects to an ILocalCryptographyResponse object.
|
|
3
|
-
* @param ci An array of CryptoItem objects to map.
|
|
4
|
-
* @returns An ILocalCryptographyResponse object containing mapped cryptographic items.
|
|
5
|
-
*/
|
|
6
|
-
export function mapToILocalCryptographyResponse(ci) {
|
|
7
|
-
const fileList = ci.map((c) => ({ file: c.file, algorithms: c.algorithms }));
|
|
8
|
-
return {
|
|
9
|
-
fileList
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvQWRhcHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS91dGlscy9hZGFwdGVycy9jcnlwdG9BZGFwdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUFDLEVBQXFCO0lBQ25FLE1BQU0sUUFBUSxHQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEcsT0FBTztRQUNMLFFBQVE7S0FDVCxDQUFBO0FBQ0gsQ0FBQyJ9
|
|
File without changes
|