scanoss 0.11.4 → 0.12.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 +54 -0
- package/assets/ReportHTMLTemplate/index.html +23 -8
- package/build/main/cli/bin/cli-bin.js +14 -1
- package/build/main/cli/commands/crypto.d.ts +1 -0
- package/build/main/cli/commands/crypto.js +37 -0
- package/build/main/index.d.ts +3 -0
- package/build/main/index.js +5 -1
- package/build/main/sdk/Cryptography/CryptoCfg.d.ts +16 -0
- package/build/main/sdk/Cryptography/CryptoCfg.js +23 -0
- package/build/main/sdk/Cryptography/CryptoDef/CryptoDef.d.ts +15 -0
- package/build/main/sdk/Cryptography/CryptoDef/CryptoDef.js +38 -0
- package/build/main/sdk/Cryptography/CryptoProvider/LocalCrypto.d.ts +25 -0
- package/build/main/sdk/Cryptography/CryptoProvider/LocalCrypto.js +61 -0
- package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +31 -0
- package/build/main/sdk/Cryptography/CryptographyScanner.js +57 -0
- package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +14 -0
- package/build/main/sdk/Cryptography/CryptographyTypes.js +2 -0
- package/build/main/sdk/Cryptography/Scanneable/CryptoItem.d.ts +28 -0
- package/build/main/sdk/Cryptography/Scanneable/CryptoItem.js +38 -0
- package/build/main/sdk/Cryptography/utils/adapters/cryptoAdapters.d.ts +8 -0
- package/build/main/sdk/Cryptography/utils/adapters/cryptoAdapters.js +15 -0
- package/build/main/tsconfig.tsbuildinfo +123 -3
- package/build/module/cli/bin/cli-bin.js +14 -1
- package/build/module/cli/commands/crypto.d.ts +1 -0
- package/build/module/cli/commands/crypto.js +31 -0
- package/build/module/index.d.ts +3 -0
- package/build/module/index.js +5 -1
- package/build/module/sdk/Cryptography/CryptoCfg.d.ts +16 -0
- package/build/module/sdk/Cryptography/CryptoCfg.js +20 -0
- package/build/module/sdk/Cryptography/CryptoDef/CryptoDef.d.ts +15 -0
- package/build/module/sdk/Cryptography/CryptoDef/CryptoDef.js +34 -0
- package/build/module/sdk/Cryptography/CryptoProvider/LocalCrypto.d.ts +25 -0
- package/build/module/sdk/Cryptography/CryptoProvider/LocalCrypto.js +55 -0
- package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +31 -0
- package/build/module/sdk/Cryptography/CryptographyScanner.js +51 -0
- package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +14 -0
- package/build/module/sdk/Cryptography/CryptographyTypes.js +2 -0
- package/build/module/sdk/Cryptography/Scanneable/CryptoItem.d.ts +28 -0
- package/build/module/sdk/Cryptography/Scanneable/CryptoItem.js +35 -0
- package/build/module/sdk/Cryptography/utils/adapters/cryptoAdapters.d.ts +8 -0
- package/build/module/sdk/Cryptography/utils/adapters/cryptoAdapters.js +12 -0
- package/build/module/tsconfig.module.tsbuildinfo +123 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.12.0](https://github.com/scanoss/scanoss.js/compare/v0.11.5...v0.12.0) (2024-05-06)
|
|
6
|
+
|
|
7
|
+
### [0.11.5](https://github.com/scanoss/scanoss.js/compare/v0.11.4...v0.11.5) (2024-04-19)
|
|
8
|
+
|
|
9
|
+
### [0.11.4](https://github.com/scanoss/scanoss.js/compare/v0.11.3...v0.11.4) (2024-04-02)
|
|
10
|
+
|
|
11
|
+
### [0.11.3](https://github.com/scanoss/scanoss.js/compare/v0.11.2...v0.11.3) (2024-01-09)
|
|
12
|
+
|
|
13
|
+
### [0.11.2](https://github.com/scanoss/scanoss.js/compare/v0.11.1...v0.11.2) (2024-01-09)
|
|
14
|
+
|
|
15
|
+
### [0.11.1](https://github.com/scanoss/scanoss.js/compare/v0.11.0...v0.11.1) (2024-01-09)
|
|
16
|
+
|
|
17
|
+
### [0.11.0](https://github.com/scanoss/scanoss.js/compare/v0.10.5...v0.11.0) (2024-01-04)
|
|
18
|
+
|
|
19
|
+
### [0.10.5](https://github.com/scanoss/scanoss.js/compare/v0.10.4...v0.10.5) (2023-12-29)
|
|
20
|
+
|
|
21
|
+
### [0.10.4](https://github.com/scanoss/scanoss.js/compare/v0.10.3...v0.10.4) (2023-12-28)
|
|
22
|
+
|
|
23
|
+
### [0.10.3](https://github.com/scanoss/scanoss.js/compare/v0.10.2...v0.10.3) (2023-12-22)
|
|
24
|
+
|
|
25
|
+
### [0.10.2](https://github.com/scanoss/scanoss.js/compare/v0.10.1...v0.10.2) (2023-12-19)
|
|
26
|
+
|
|
27
|
+
### [0.10.1](https://github.com/scanoss/scanoss.js/compare/v0.10.0...v0.10.1) (2023-11-22)
|
|
28
|
+
|
|
29
|
+
### [0.10.0](https://github.com/scanoss/scanoss.js/compare/v0.9.2...v0.10.0) (2023-11-22)
|
|
30
|
+
|
|
31
|
+
### [0.9.3](https://github.com/scanoss/scanoss.js/compare/v0.9.2...v0.9.3) (2023-10-20)
|
|
32
|
+
|
|
33
|
+
### [0.9.2](https://github.com/scanoss/scanoss.js/compare/v0.9.1...v0.9.2) (2023-10-09)
|
|
34
|
+
|
|
35
|
+
### [0.9.1](https://github.com/scanoss/scanoss.js/compare/v0.9.0...v0.9.1) (2023-05-18)
|
|
36
|
+
|
|
37
|
+
### [0.9.0](https://github.com/scanoss/scanoss.js/compare/v0.8.7...v0.9.0) (2023-04-19)
|
|
38
|
+
|
|
39
|
+
### [0.8.8](https://github.com/scanoss/scanoss.js/compare/v0.8.7...v0.8.8) (2023-04-16)
|
|
40
|
+
|
|
41
|
+
### [0.8.7](https://github.com/scanoss/scanoss.js/compare/v0.8.6...v0.8.7) (2023-04-12)
|
|
42
|
+
|
|
43
|
+
### [0.8.6](https://github.com/scanoss/scanoss.js/compare/v0.8.5...v0.8.6) (2023-03-28)
|
|
44
|
+
|
|
45
|
+
### [0.8.5](https://github.com/scanoss/scanoss.js/compare/v0.8.0...v0.8.5) (2023-03-17)
|
|
46
|
+
|
|
47
|
+
### [0.8.0](https://github.com/scanoss/scanoss.js/compare/v0.7.8...v0.8.0) (2023-02-20)
|
|
48
|
+
|
|
49
|
+
### [0.7.8](https://github.com/scanoss/scanoss.js/compare/v0.4.0...v0.7.8) (2023-01-25)
|
|
50
|
+
|
|
51
|
+
### [0.4.0](https://github.com/scanoss/scanoss.js/compare/v0.4.0-beta...v0.4.0) (2022-09-30)
|
|
52
|
+
|
|
53
|
+
### [0.4.0-beta](https://github.com/scanoss/scanoss.js/compare/v0.4.0-alpha.0...v0.4.0-beta) (2022-08-31)
|
|
54
|
+
|
|
55
|
+
### [0.4.0-alpha.0](https://github.com/scanoss/scanoss.js/compare/v0.3.0...v0.4.0-alpha.0) (2022-08-19)
|
|
56
|
+
|
|
57
|
+
### [0.3.0](https://github.com/scanoss/scanoss.js/compare/v0.2.18...v0.3.0) (2022-07-02)
|
|
58
|
+
|
|
5
59
|
### [0.2.18](https://github.com/scanoss/scanoss.js/compare/v0.2.16...v0.2.18) (2022-02-23)
|
|
6
60
|
|
|
7
61
|
### [0.2.16](https://github.com/scanoss/scanoss.js/compare/v0.2.14...v0.2.16) (2022-02-14)
|
|
@@ -322,14 +322,20 @@
|
|
|
322
322
|
color: rgb(24, 24, 27)
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
+
.info .v-label{
|
|
326
|
+
justify-content: flex-end;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.info .v-value{
|
|
330
|
+
justify-content: flex-end;
|
|
331
|
+
}
|
|
332
|
+
|
|
325
333
|
.row-license-info-container {
|
|
326
|
-
display: flex;
|
|
327
334
|
width: 100%;
|
|
328
335
|
}
|
|
329
336
|
|
|
330
337
|
td.cell-info-container {
|
|
331
|
-
|
|
332
|
-
display: flex;
|
|
338
|
+
word-break: break-word;
|
|
333
339
|
}
|
|
334
340
|
|
|
335
341
|
td.cell-info-container:last-child {
|
|
@@ -341,8 +347,12 @@
|
|
|
341
347
|
}
|
|
342
348
|
|
|
343
349
|
td.cell-info-container.index {
|
|
344
|
-
width:
|
|
350
|
+
width: 50px;
|
|
351
|
+
}
|
|
345
352
|
|
|
353
|
+
td.cell-info-container.version {
|
|
354
|
+
width: 20%;
|
|
355
|
+
word-break: break-all;
|
|
346
356
|
}
|
|
347
357
|
|
|
348
358
|
.row-info-container {
|
|
@@ -446,6 +456,11 @@
|
|
|
446
456
|
table.main-table td:first-child {
|
|
447
457
|
font-weight: 600;
|
|
448
458
|
}
|
|
459
|
+
|
|
460
|
+
#table-components td, #table-dependencies td, #table-components td, #table-cryptography td {
|
|
461
|
+
word-break: break-word;
|
|
462
|
+
}
|
|
463
|
+
|
|
449
464
|
</style>
|
|
450
465
|
|
|
451
466
|
|
|
@@ -985,14 +1000,14 @@
|
|
|
985
1000
|
</div>
|
|
986
1001
|
</div>
|
|
987
1002
|
</td>
|
|
988
|
-
<td class="cell-info-container">
|
|
1003
|
+
<td class="cell-info-container version">
|
|
989
1004
|
<div class="row-info-container">
|
|
990
1005
|
<div class="info">
|
|
991
|
-
<div class="label">
|
|
1006
|
+
<div class="label v-label">
|
|
992
1007
|
${c.versions.length > 1 ? 'Versions' : 'Version'}
|
|
993
1008
|
</div>
|
|
994
|
-
<div class="value small">
|
|
995
|
-
${c.versions.toString()}
|
|
1009
|
+
<div class="value small v-value">
|
|
1010
|
+
${c.versions.join(', ').toString()}
|
|
996
1011
|
</div>
|
|
997
1012
|
</div>
|
|
998
1013
|
</div>
|
|
@@ -5,6 +5,7 @@ const Utils_1 = require("../../sdk/Utils/Utils");
|
|
|
5
5
|
const dep_1 = require("../commands/dep");
|
|
6
6
|
const scan_1 = require("../commands/scan");
|
|
7
7
|
const wfp_1 = require("../commands/wfp");
|
|
8
|
+
const crypto_1 = require("../commands/crypto");
|
|
8
9
|
function CLIErrorHandler(e) {
|
|
9
10
|
console.error(" ");
|
|
10
11
|
console.error(e);
|
|
@@ -66,12 +67,24 @@ async function main() {
|
|
|
66
67
|
CLIErrorHandler(e);
|
|
67
68
|
});
|
|
68
69
|
});
|
|
70
|
+
const cryptography = new commander_1.Command("crypto");
|
|
71
|
+
cryptography.description("Scan local cryptography");
|
|
72
|
+
cryptography.addArgument(new commander_1.Argument("<source>"));
|
|
73
|
+
// Options
|
|
74
|
+
cryptography.addOption(new commander_1.Option("-r, --rules <rules>", "Crypto rules"));
|
|
75
|
+
cryptography.addOption(new commander_1.Option("-o, --output <filename>", "Output result file name (optional - default stdout)"));
|
|
76
|
+
cryptography.action((source, options) => {
|
|
77
|
+
crypto_1.cryptoHandler(source, options).catch((e) => {
|
|
78
|
+
CLIErrorHandler(e);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
69
81
|
const program = new commander_1.Command();
|
|
70
82
|
program.version(Utils_1.Utils.getPackageVersion());
|
|
71
83
|
program.description("The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.");
|
|
72
84
|
program.addCommand(scan);
|
|
73
85
|
program.addCommand(dependencies);
|
|
74
86
|
program.addCommand(fingerprint);
|
|
87
|
+
program.addCommand(cryptography);
|
|
75
88
|
await program.parseAsync(process.argv);
|
|
76
89
|
}
|
|
77
90
|
try {
|
|
@@ -81,4 +94,4 @@ catch (e) {
|
|
|
81
94
|
console.error(e);
|
|
82
95
|
process.exit(1);
|
|
83
96
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGkvYmluL2NsaS1iaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx5Q0FBc0Q7QUFFdEQsaURBQThDO0FBQzlDLHlDQUE2QztBQUM3QywyQ0FBK0M7QUFDL0MseUNBQTZDO0FBQzdDLCtDQUFtRDtBQUVuRCxTQUFTLGVBQWUsQ0FBQyxDQUFRO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFFRCxLQUFLLFVBQVUsSUFBSTtJQUVqQixNQUFNLElBQUksR0FBRyxJQUFJLG1CQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLG9CQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsaUVBQWlFLENBQUMsQ0FBQztJQUU3RixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksa0JBQU0sQ0FBQyxXQUFXLEVBQUUsc0NBQXNDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxrQkFBTSxDQUFDLFlBQVksRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDLENBQUM7SUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGtCQUFNLENBQUMsZUFBZSxFQUFFLDZFQUE2RSxDQUFDLENBQUMsQ0FBQztJQUMzSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksa0JBQU0sQ0FBQyx3QkFBd0IsRUFBRSwrQ0FBK0MsQ0FBQyxDQUFDLENBQUM7SUFDdEcsSUFBSSxD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cryptoHandler(rootPath: string, options: any): Promise<void>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.cryptoHandler = void 0;
|
|
6
|
+
const helpers_1 = require("./helpers");
|
|
7
|
+
const CryptographyScanner_1 = require("../../sdk/Cryptography/CryptographyScanner");
|
|
8
|
+
const Tree_1 = require("../../sdk/tree/Tree");
|
|
9
|
+
const CryptoCfg_1 = require("../../sdk/Cryptography/CryptoCfg");
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
async function cryptoHandler(rootPath, options) {
|
|
12
|
+
rootPath = rootPath.replace(/\/$/, ''); // Remove trailing slash if exists
|
|
13
|
+
rootPath = rootPath.replace(/^\./, process.env.PWD); // Convert relative path to absolute path.
|
|
14
|
+
const pathIsFolder = await helpers_1.isFolder(rootPath);
|
|
15
|
+
let cryptoRules = null;
|
|
16
|
+
if (options.rules)
|
|
17
|
+
cryptoRules = options.rules;
|
|
18
|
+
const cryptoScanner = new CryptographyScanner_1.CryptographyScanner(new CryptoCfg_1.CryptoCfg(cryptoRules));
|
|
19
|
+
let fileList = [];
|
|
20
|
+
fileList.push(rootPath);
|
|
21
|
+
if (pathIsFolder) {
|
|
22
|
+
const tree = new Tree_1.Tree(rootPath);
|
|
23
|
+
tree.build();
|
|
24
|
+
fileList = tree.getFileList(null);
|
|
25
|
+
}
|
|
26
|
+
console.log("Searching for local cryptography...");
|
|
27
|
+
const results = await cryptoScanner.scan(fileList);
|
|
28
|
+
if (options.output) {
|
|
29
|
+
await fs_1.default.promises.writeFile(options.output, JSON.stringify(results, null, 2));
|
|
30
|
+
console.log(`Results found in ${options.output}`);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.log(JSON.stringify(results, null, 2));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.cryptoHandler = cryptoHandler;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9jcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1Q0FBcUM7QUFLckMsb0ZBRW9EO0FBQ3BELDhDQUEyQztBQUUzQyxnRUFBNkQ7QUFDN0QsNENBQW9CO0FBRWIsS0FBSyxVQUFVLGFBQWEsQ0FBQyxRQUFnQixFQUFFLE9BQVk7SUFDaEUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUUsa0NBQWtDO0lBQzNFLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsMENBQTBDO0lBQ2hHLE1BQU0sWUFBWSxHQUFHLE1BQU0sa0JBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDdkIsSUFBRyxPQUFPLENBQUMsS0FBSztRQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRzlDLE1BQU0sYUFBYSxHQUFHLElBQUkseUNBQW1CLENBQUMsSUFBSSxxQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFHMUUsSUFBSSxRQUFRLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXhCLElBQUksWUFBWSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25DO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVuRCxJQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDakIsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQ25EO1NBQU07UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9DO0FBRUgsQ0FBQztBQS9CRCxzQ0ErQkMifQ==
|
package/build/main/index.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ export * from './sdk/Dependencies/DependencyTypes';
|
|
|
8
8
|
export * from './sdk/Dependencies/DependencyScannerCfg';
|
|
9
9
|
export * from './sdk/Dependencies/DependencyScanner';
|
|
10
10
|
export * from './sdk/Dependencies/LocalDependency/LocalDependency';
|
|
11
|
+
export * from './sdk/Cryptography/CryptographyScanner';
|
|
12
|
+
export * from './sdk/Cryptography/CryptoCfg';
|
|
13
|
+
export * from './sdk/Cryptography/CryptographyTypes';
|
|
11
14
|
export * from './sdk/Report/Report';
|
|
12
15
|
export * from './sdk/Report/DataLayer/DataLayerTypes';
|
|
13
16
|
export * from './sdk/Report/DataLayer/DataProviderManager';
|
package/build/main/index.js
CHANGED
|
@@ -22,6 +22,10 @@ __exportStar(require("./sdk/Dependencies/DependencyTypes"), exports);
|
|
|
22
22
|
__exportStar(require("./sdk/Dependencies/DependencyScannerCfg"), exports);
|
|
23
23
|
__exportStar(require("./sdk/Dependencies/DependencyScanner"), exports);
|
|
24
24
|
__exportStar(require("./sdk/Dependencies/LocalDependency/LocalDependency"), exports);
|
|
25
|
+
// *** Cryptography scanner exports *** //
|
|
26
|
+
__exportStar(require("./sdk/Cryptography/CryptographyScanner"), exports);
|
|
27
|
+
__exportStar(require("./sdk/Cryptography/CryptoCfg"), exports);
|
|
28
|
+
__exportStar(require("./sdk/Cryptography/CryptographyTypes"), exports);
|
|
25
29
|
// *** Report export *** //
|
|
26
30
|
__exportStar(require("./sdk/Report/Report"), exports);
|
|
27
31
|
__exportStar(require("./sdk/Report/DataLayer/DataLayerTypes"), exports);
|
|
@@ -38,4 +42,4 @@ __exportStar(require("./sdk/Services/Grpc/CryptographyService"), exports);
|
|
|
38
42
|
__exportStar(require("./sdk/Services/Grpc/DependencyService"), exports);
|
|
39
43
|
var Logger_1 = require("./sdk/Logger");
|
|
40
44
|
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return Logger_1.logger; } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLHdEQUFzQztBQUN0Qyw2REFBMkM7QUFDM0MsMkRBQXlDO0FBQ3pDLHdGQUFzRTtBQUV0RSxpQ0FBaUM7QUFDakMsNERBQTBDO0FBRzFDLHdDQUF3QztBQUN4QyxxRUFBbUQ7QUFDbkQsMEVBQXdEO0FBQ3hELHVFQUFxRDtBQUNyRCxxRkFBbUU7QUFFbkUsMENBQTBDO0FBQzFDLHlFQUF1RDtBQUN2RCwrREFBNkM7QUFDN0MsdUVBQXFEO0FBRXJELDJCQUEyQjtBQUMzQixzREFBb0M7QUFDcEMsd0VBQXNEO0FBQ3RELDZFQUEyRDtBQUMzRCwyRkFBeUU7QUFDekUsMkZBQXlFO0FBQ3pFLDhGQUE0RTtBQUM1RSw2RkFBMkU7QUFFM0UsbUJBQW1CO0FBQ25CLHdFQUFzRDtBQUV0RCx1QkFBdUI7QUFDdkIsNERBQTBDO0FBRzFDLDBFQUF3RDtBQUN4RCx3RUFBc0Q7QUFHdEQsdUNBQXNDO0FBQTdCLGdHQUFBLE1BQU0sT0FBQSJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a configuration for cryptography scanner.
|
|
3
|
+
*/
|
|
4
|
+
export declare class CryptoCfg {
|
|
5
|
+
private readonly rulesPath;
|
|
6
|
+
/**
|
|
7
|
+
* Creates an instance of CryptoCfg.
|
|
8
|
+
* @param rulesPath Optional. Path to the cryptography rules file.
|
|
9
|
+
*/
|
|
10
|
+
constructor(rulesPath?: string);
|
|
11
|
+
/**
|
|
12
|
+
* Gets the path to the cryptography rules file.
|
|
13
|
+
* @returns The path to the cryptography rules file.
|
|
14
|
+
*/
|
|
15
|
+
getRulesPath(): string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.CryptoCfg = void 0;
|
|
3
|
+
/**
|
|
4
|
+
* Represents a configuration for cryptography scanner.
|
|
5
|
+
*/
|
|
6
|
+
class CryptoCfg {
|
|
7
|
+
/**
|
|
8
|
+
* Creates an instance of CryptoCfg.
|
|
9
|
+
* @param rulesPath Optional. Path to the cryptography rules file.
|
|
10
|
+
*/
|
|
11
|
+
constructor(rulesPath) {
|
|
12
|
+
this.rulesPath = rulesPath;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Gets the path to the cryptography rules file.
|
|
16
|
+
* @returns The path to the cryptography rules file.
|
|
17
|
+
*/
|
|
18
|
+
getRulesPath() {
|
|
19
|
+
return this.rulesPath;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.CryptoCfg = CryptoCfg;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFJcEI7OztPQUdHO0lBQ0YsWUFBWSxTQUFrQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUY7OztPQUdHO0lBQ0ssWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztDQUVIO0FBcEJELDhCQW9CQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CryptoAlgorithm, CryptoAlgorithmRules } from '../CryptographyTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Function to create a mapping of regular expressions based on provided crypto definitions.
|
|
4
|
+
* @param cryptoRulesDefinitions An array of objects containing cryptographic definitions.
|
|
5
|
+
* @returns A Map where each key is a cryptographic algorithm and each value is a regular expression
|
|
6
|
+
* that matches keywords associated with that algorithm.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createCryptoKeywordMapper(cryptoRulesDefinitions: Array<CryptoAlgorithmRules>): Map<string, RegExp>;
|
|
9
|
+
/**
|
|
10
|
+
* Function to create a mapping of cryptographic algorithms and their strengths.
|
|
11
|
+
* @param cryptoDefinitions An array of objects containing cryptographic definitions.
|
|
12
|
+
* @returns A Map where each key is a cryptographic algorithm and each value is an object
|
|
13
|
+
* containing the algorithm's name and strength.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getCryptoMapper(cryptoDefinitions: Array<CryptoAlgorithmRules>): Map<string, CryptoAlgorithm>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.getCryptoMapper = exports.createCryptoKeywordMapper = void 0;
|
|
3
|
+
/**
|
|
4
|
+
* Function to create a mapping of regular expressions based on provided crypto definitions.
|
|
5
|
+
* @param cryptoRulesDefinitions An array of objects containing cryptographic definitions.
|
|
6
|
+
* @returns A Map where each key is a cryptographic algorithm and each value is a regular expression
|
|
7
|
+
* that matches keywords associated with that algorithm.
|
|
8
|
+
*/
|
|
9
|
+
function createCryptoKeywordMapper(cryptoRulesDefinitions) {
|
|
10
|
+
const mapper = new Map();
|
|
11
|
+
cryptoRulesDefinitions.forEach(c => {
|
|
12
|
+
const words = [];
|
|
13
|
+
c.keywords.forEach((k) => {
|
|
14
|
+
const escapedWord = k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
15
|
+
words.push(escapedWord);
|
|
16
|
+
});
|
|
17
|
+
mapper.set(c.algorithm, new RegExp(words.join('|'), 'gi'));
|
|
18
|
+
});
|
|
19
|
+
return mapper;
|
|
20
|
+
}
|
|
21
|
+
exports.createCryptoKeywordMapper = createCryptoKeywordMapper;
|
|
22
|
+
/**
|
|
23
|
+
* Function to create a mapping of cryptographic algorithms and their strengths.
|
|
24
|
+
* @param cryptoDefinitions An array of objects containing cryptographic definitions.
|
|
25
|
+
* @returns A Map where each key is a cryptographic algorithm and each value is an object
|
|
26
|
+
* containing the algorithm's name and strength.
|
|
27
|
+
*/
|
|
28
|
+
function getCryptoMapper(cryptoDefinitions) {
|
|
29
|
+
const cryptoMapper = new Map();
|
|
30
|
+
cryptoDefinitions.forEach((c) => {
|
|
31
|
+
const { algorithm, strength } = c;
|
|
32
|
+
// Add the algorithm and its details to the map.
|
|
33
|
+
cryptoMapper.set(c.algorithm, { algorithm, strength });
|
|
34
|
+
});
|
|
35
|
+
return cryptoMapper;
|
|
36
|
+
}
|
|
37
|
+
exports.getCryptoMapper = getCryptoMapper;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvRGVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvRGVmL0NyeXB0b0RlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBOzs7OztHQUtHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsc0JBQW1EO0lBQzNGLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO0lBQ3hDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsRUFBRTtRQUNoQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUN0QixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVpELDhEQVlDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsaUJBQThDO0lBQzNFLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7SUFFNUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsZ0RBQWdEO1FBQ2hELFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQVRELDBDQVNDIn0=
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
/**
|
|
10
|
+
* Constructs a new LocalCrypto.
|
|
11
|
+
* @param cryptoRules An array of CryptoAlgorithmRules used to create the search rules.
|
|
12
|
+
*/
|
|
13
|
+
constructor(cryptoRules: Array<CryptoAlgorithmRules>);
|
|
14
|
+
/**
|
|
15
|
+
* Searches for cryptographic algorithms in the content of a files.
|
|
16
|
+
* @param files The files to search.
|
|
17
|
+
*/
|
|
18
|
+
search(files: Array<string>): Promise<Array<CryptoItem>>;
|
|
19
|
+
/**
|
|
20
|
+
* Asynchronously searches for cryptographic algorithms in the content of a file.
|
|
21
|
+
* @param cryptoItem The CryptoItem to search for cryptographic algorithms.
|
|
22
|
+
* @returns A promise that resolves when the search is complete.
|
|
23
|
+
*/
|
|
24
|
+
private searchCrypto;
|
|
25
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.LocalCrypto = void 0;
|
|
6
|
+
const CryptoItem_1 = require("../Scanneable/CryptoItem");
|
|
7
|
+
const CryptoDef_1 = require("../CryptoDef/CryptoDef");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
/**
|
|
10
|
+
* Represents a CryptoCalculator used for searching cryptographic algorithms in files.
|
|
11
|
+
*/
|
|
12
|
+
class LocalCrypto {
|
|
13
|
+
/**
|
|
14
|
+
* Constructs a new LocalCrypto.
|
|
15
|
+
* @param cryptoRules An array of CryptoAlgorithmRules used to create the search rules.
|
|
16
|
+
*/
|
|
17
|
+
constructor(cryptoRules) {
|
|
18
|
+
this.cryptoRules = CryptoDef_1.createCryptoKeywordMapper(cryptoRules);
|
|
19
|
+
this.cryptoMapper = CryptoDef_1.getCryptoMapper(cryptoRules);
|
|
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 cryptoItems = files.map((f) => { return new CryptoItem_1.CryptoItem(f); });
|
|
29
|
+
await Promise.all(cryptoItems.map(async (c) => {
|
|
30
|
+
await this.searchCrypto(c);
|
|
31
|
+
}));
|
|
32
|
+
return cryptoItems;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Asynchronously searches for cryptographic algorithms in the content of a file.
|
|
36
|
+
* @param cryptoItem The CryptoItem to search for cryptographic algorithms.
|
|
37
|
+
* @returns A promise that resolves when the search is complete.
|
|
38
|
+
*/
|
|
39
|
+
async searchCrypto(cryptoItem) {
|
|
40
|
+
const cryptoFound = new Array();
|
|
41
|
+
let content = await fs_1.default.promises.readFile(cryptoItem.getPath(), 'utf-8');
|
|
42
|
+
this.cryptoRules.forEach((value, key) => {
|
|
43
|
+
try {
|
|
44
|
+
const matches = content.match(value);
|
|
45
|
+
if (matches) {
|
|
46
|
+
cryptoFound.push(key);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
console.error(e);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const results = [];
|
|
54
|
+
cryptoFound.forEach((cf) => {
|
|
55
|
+
results.push(this.cryptoMapper.get(cf));
|
|
56
|
+
});
|
|
57
|
+
cryptoItem.setAlgorithms(results);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.LocalCrypto = LocalCrypto;
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9DcnlwdG9Qcm92aWRlci9Mb2NhbENyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlEQUFzRDtBQUN0RCxzREFFZ0M7QUFDaEMsNENBQW9CO0FBR3BCOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBTXRCOzs7T0FHRztJQUNILFlBQVksV0FBd0M7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQ0FBeUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLDJCQUFlLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsR0FBRyxPQUFPLElBQUksdUJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFzQjtRQUMvQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3hDLElBQUksT0FBTyxHQUFJLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3RDLElBQUk7Z0JBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDdkI7YUFDRjtZQUFDLE9BQU8sQ0FBQyxFQUFDO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUEyQixFQUFFLENBQUM7UUFDM0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBcERELGtDQW9EQyJ9
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CryptoCfg } from './CryptoCfg';
|
|
2
|
+
import { ILocalCryptographyResponse } from './CryptographyTypes';
|
|
3
|
+
/**
|
|
4
|
+
* A class responsible for scanning files for cryptographic items.
|
|
5
|
+
*/
|
|
6
|
+
export declare class CryptographyScanner {
|
|
7
|
+
private cryptoConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Constructs a new CryptographyScanner.
|
|
10
|
+
* @param cryptoCfg The cryptographic configuration.
|
|
11
|
+
*/
|
|
12
|
+
constructor(cryptoCfg: CryptoCfg);
|
|
13
|
+
/**
|
|
14
|
+
* Scans an array of files for cryptographic items.
|
|
15
|
+
* @param files An array of file paths to scan.
|
|
16
|
+
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
17
|
+
*/
|
|
18
|
+
scan(files: Array<string>): Promise<ILocalCryptographyResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Scans a folder for cryptographic items.
|
|
21
|
+
* @param path The path of the folder to scan.
|
|
22
|
+
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
23
|
+
* @throws Error if the specified path is not a directory.
|
|
24
|
+
*/
|
|
25
|
+
scanFolder(path: string): Promise<ILocalCryptographyResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* Loads custom cryptographic rules from a file.
|
|
28
|
+
* @returns A promise that resolves to the loaded rules.
|
|
29
|
+
*/
|
|
30
|
+
private loadRules;
|
|
31
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.CryptographyScanner = void 0;
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const Tree_1 = require("../tree/Tree");
|
|
8
|
+
const LocalCrypto_1 = require("./CryptoProvider/LocalCrypto");
|
|
9
|
+
const cryptoAdapters_1 = require("./utils/adapters/cryptoAdapters");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
/**
|
|
12
|
+
* A class responsible for scanning files for cryptographic items.
|
|
13
|
+
*/
|
|
14
|
+
class CryptographyScanner {
|
|
15
|
+
/**
|
|
16
|
+
* Constructs a new CryptographyScanner.
|
|
17
|
+
* @param cryptoCfg The cryptographic configuration.
|
|
18
|
+
*/
|
|
19
|
+
constructor(cryptoCfg) {
|
|
20
|
+
this.cryptoConfig = cryptoCfg;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Scans an array of files for cryptographic items.
|
|
24
|
+
* @param files An array of file paths to scan.
|
|
25
|
+
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
26
|
+
*/
|
|
27
|
+
async scan(files) {
|
|
28
|
+
const cryptographyRules = await this.loadRules(this.cryptoConfig.getRulesPath());
|
|
29
|
+
const localCrypto = new LocalCrypto_1.LocalCrypto(cryptographyRules);
|
|
30
|
+
const cryptoItems = await localCrypto.search(files);
|
|
31
|
+
return cryptoAdapters_1.mapToILocalCryptographyResponse(cryptoItems);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Scans a folder for cryptographic items.
|
|
35
|
+
* @param path The path of the folder to scan.
|
|
36
|
+
* @returns A promise that resolves to an ILocalCryptographyResponse.
|
|
37
|
+
* @throws Error if the specified path is not a directory.
|
|
38
|
+
*/
|
|
39
|
+
async scanFolder(path) {
|
|
40
|
+
if (!(await fs_1.default.promises.lstat(path)).isDirectory())
|
|
41
|
+
throw new Error('Specified path is not a directory');
|
|
42
|
+
const tree = new Tree_1.Tree(path);
|
|
43
|
+
tree.build();
|
|
44
|
+
return await this.scan(tree.getFileList());
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Loads custom cryptographic rules from a file.
|
|
48
|
+
* @returns A promise that resolves to the loaded rules.
|
|
49
|
+
*/
|
|
50
|
+
async loadRules(rulePath) {
|
|
51
|
+
const cryptoRulePath = rulePath ? rulePath : path_1.default.join(__dirname, '../../../../assets/data/defaultCryptoRules.json');
|
|
52
|
+
const rules = await fs_1.default.promises.readFile(cryptoRulePath, 'utf-8');
|
|
53
|
+
return JSON.parse(rules);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.CryptographyScanner = CryptographyScanner;
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsdUNBQW9DO0FBQ3BDLDhEQUEyRDtBQU0zRCxvRUFFeUM7QUFDekMsZ0RBQXdCO0FBRXhCOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFHOUI7OztPQUdHO0lBQ0gsWUFBWSxTQUFvQjtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxPQUFPLGdEQUErQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNsQyxJQUFJLENBQUMsQ0FBQyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFpQjtRQUN2QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUUsY0FBSSxDQUFDLElBQUksQ0FDckQsU0FBUyxFQUNULGlEQUFpRCxDQUFDLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FFRjtBQWpERCxrREFpREMifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface CryptoAlgorithm {
|
|
2
|
+
algorithm: string;
|
|
3
|
+
strength: string;
|
|
4
|
+
}
|
|
5
|
+
export interface CryptoAlgorithmRules extends CryptoAlgorithm {
|
|
6
|
+
keywords: Array<string>;
|
|
7
|
+
}
|
|
8
|
+
export interface ICryptoItem {
|
|
9
|
+
file: string;
|
|
10
|
+
algorithms: Array<CryptoAlgorithm>;
|
|
11
|
+
}
|
|
12
|
+
export interface ILocalCryptographyResponse {
|
|
13
|
+
fileList: Array<ICryptoItem>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5VHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9DcnlwdG9ncmFwaHlUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CryptoAlgorithm, ICryptoItem } from '../CryptographyTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a cryptographic item containing information about a file and cryptographic algorithms found in it.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CryptoItem implements ICryptoItem {
|
|
6
|
+
file: string;
|
|
7
|
+
algorithms: Array<CryptoAlgorithm>;
|
|
8
|
+
/**
|
|
9
|
+
* Constructs a new CryptoItem with the specified file path.
|
|
10
|
+
* @param file The path to the file.
|
|
11
|
+
*/
|
|
12
|
+
constructor(file: string);
|
|
13
|
+
/**
|
|
14
|
+
* Retrieves the path to the file.
|
|
15
|
+
* @returns The path to the file.
|
|
16
|
+
*/
|
|
17
|
+
getPath(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the cryptographic algorithms found in the file.
|
|
20
|
+
* @returns An array of cryptographic algorithms.
|
|
21
|
+
*/
|
|
22
|
+
getAlgorithms(): CryptoAlgorithm[];
|
|
23
|
+
/**
|
|
24
|
+
* Sets the cryptographic algorithms found in the file.
|
|
25
|
+
* @param algorithms An array of cryptographic algorithms.
|
|
26
|
+
*/
|
|
27
|
+
setAlgorithms(algorithms: Array<CryptoAlgorithm>): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.CryptoItem = void 0;
|
|
3
|
+
/**
|
|
4
|
+
* Represents a cryptographic item containing information about a file and cryptographic algorithms found in it.
|
|
5
|
+
*/
|
|
6
|
+
class CryptoItem {
|
|
7
|
+
/**
|
|
8
|
+
* Constructs a new CryptoItem with the specified file path.
|
|
9
|
+
* @param file The path to the file.
|
|
10
|
+
*/
|
|
11
|
+
constructor(file) {
|
|
12
|
+
this.file = file;
|
|
13
|
+
this.algorithms = [];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves the path to the file.
|
|
17
|
+
* @returns The path to the file.
|
|
18
|
+
*/
|
|
19
|
+
getPath() {
|
|
20
|
+
return this.file;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves the cryptographic algorithms found in the file.
|
|
24
|
+
* @returns An array of cryptographic algorithms.
|
|
25
|
+
*/
|
|
26
|
+
getAlgorithms() {
|
|
27
|
+
return this.algorithms;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Sets the cryptographic algorithms found in the file.
|
|
31
|
+
* @param algorithms An array of cryptographic algorithms.
|
|
32
|
+
*/
|
|
33
|
+
setAlgorithms(algorithms) {
|
|
34
|
+
this.algorithms = algorithms;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.CryptoItem = CryptoItem;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvSXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L1NjYW5uZWFibGUvQ3J5cHRvSXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBS3JCOzs7T0FHRztJQUNILFlBQVksSUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxVQUFrQztRQUNyRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0NBRUY7QUF0Q0QsZ0NBc0NDIn0=
|