@sebastienrousseau/crypto-cbom 0.0.9 → 0.0.25
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/audit.d.ts.map +1 -1
- package/dist/audit.js +12 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +26 -1
- package/package.json +2 -2
package/dist/audit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,WAAW,EACX,aAAa,EACb,QAAQ,EACR,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,gBAAgB,uHACyF,CAAC;
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,WAAW,EACX,aAAa,EACb,QAAQ,EACR,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,gBAAgB,uHACyF,CAAC;AA0BvH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAQ3E;AA0GD,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,GAAG,QAAQ,GAAG,WAAW,EAAE,GAC9C,eAAe,CA+BjB"}
|
package/dist/audit.js
CHANGED
|
@@ -5,13 +5,24 @@ exports.classifyPrimitive = classifyPrimitive;
|
|
|
5
5
|
exports.auditCbom = auditCbom;
|
|
6
6
|
exports.AUDIT_DISCLAIMER = "Heuristic cryptographic posture score derived from algorithm names; it is not a DORA or CRA compliance assessment.";
|
|
7
7
|
const BROKEN_MARKERS = ["MD5", "SHA-1", "DES", "RC4", "ECB"];
|
|
8
|
-
const
|
|
8
|
+
const HYBRID_MARKERS = ["HYBRID", "+ML-KEM", "+ML-DSA", "PQ-STREAM"];
|
|
9
|
+
const QUANTUM_VULNERABLE_MARKERS = [
|
|
10
|
+
"RSA",
|
|
11
|
+
"ECC",
|
|
12
|
+
"ECDSA",
|
|
13
|
+
"ED25519",
|
|
14
|
+
"X25519",
|
|
15
|
+
"X448",
|
|
16
|
+
"DIFFIE-HELLMAN",
|
|
17
|
+
];
|
|
9
18
|
const TRANSITIONAL_MARKERS = ["AES-128", "CBC"];
|
|
10
19
|
function classifyPrimitive(primitive) {
|
|
11
20
|
const upper = primitive.toUpperCase();
|
|
12
21
|
const has = (markers) => markers.some((m) => upper.includes(m));
|
|
13
22
|
if (has(BROKEN_MARKERS))
|
|
14
23
|
return "DEPRECATED_BROKEN";
|
|
24
|
+
if (has(HYBRID_MARKERS))
|
|
25
|
+
return "TRANSITIONAL_HYBRID";
|
|
15
26
|
if (has(QUANTUM_VULNERABLE_MARKERS))
|
|
16
27
|
return "VULNERABLE_CRQC";
|
|
17
28
|
if (has(TRANSITIONAL_MARKERS))
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAGZ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAGZ,MAAM,SAAS,CAAC;AAuQjB,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAY,GACnB,WAAW,EAAE,CA8Bf;AAKD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CA6C5D"}
|
package/dist/scanner.js
CHANGED
|
@@ -18,7 +18,7 @@ const ASSET_RULES = [
|
|
|
18
18
|
standard: "NIST FIPS 203",
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
pattern:
|
|
21
|
+
pattern: /(?<!(?:x25519|x448)[-_])\bml[-_]?kem[-_]?768\b/i,
|
|
22
22
|
name: "ML-KEM-768",
|
|
23
23
|
algorithm: "ML-KEM",
|
|
24
24
|
type: "kem",
|
|
@@ -67,6 +67,22 @@ const ASSET_RULES = [
|
|
|
67
67
|
resistanceLevel: "QUANTUM_SAFE",
|
|
68
68
|
standard: "NIST FIPS 205",
|
|
69
69
|
},
|
|
70
|
+
{
|
|
71
|
+
pattern: /\bfn[-_]?dsa\b/i,
|
|
72
|
+
name: "FN-DSA",
|
|
73
|
+
algorithm: "FN-DSA",
|
|
74
|
+
type: "signature",
|
|
75
|
+
resistanceLevel: "QUANTUM_SAFE",
|
|
76
|
+
standard: "NIST FIPS 206",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
pattern: /\bx25519[-_]ml[-_]?kem[-_]?768\b/i,
|
|
80
|
+
name: "X25519 + ML-KEM-768",
|
|
81
|
+
algorithm: "Hybrid KEM",
|
|
82
|
+
type: "kem",
|
|
83
|
+
resistanceLevel: "QUANTUM_SAFE",
|
|
84
|
+
standard: "IETF Hybrid / NIST IR 8547",
|
|
85
|
+
},
|
|
70
86
|
{
|
|
71
87
|
pattern: /\baes[-_]?256[-_]?gcm\b/i,
|
|
72
88
|
name: "AES-256-GCM",
|
|
@@ -140,6 +156,15 @@ const ASSET_RULES = [
|
|
|
140
156
|
resistanceLevel: "VULNERABLE_CRQC",
|
|
141
157
|
standard: "RFC 8032",
|
|
142
158
|
},
|
|
159
|
+
{
|
|
160
|
+
pattern: /\bx25519\b(?![-_]ml[-_]?kem)/i,
|
|
161
|
+
name: "X25519",
|
|
162
|
+
algorithm: "X25519",
|
|
163
|
+
type: "algorithm",
|
|
164
|
+
keySize: 256,
|
|
165
|
+
resistanceLevel: "VULNERABLE_CRQC",
|
|
166
|
+
standard: "RFC 7748",
|
|
167
|
+
},
|
|
143
168
|
{
|
|
144
169
|
pattern: /\b(?:ecdsa|ecdh|prime256v1|secp256r1|secp384r1)\b/i,
|
|
145
170
|
name: "ECDSA / ECDH",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebastienrousseau/crypto-cbom",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "Cryptographic Bill of Materials (CBOM) generator and auditor compliant with CycloneDX 1.6, SPDX 3.0, EU DORA Articles 9/13, and CRA Article 14.",
|
|
5
5
|
"author": "Sebastien Rousseau <sebastienrousseau@users.noreply.github.com>",
|
|
6
6
|
"license": "MIT OR Apache-2.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dist/**/*.d.ts.map"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@sebastienrousseau/crypto-lib": "0.0.
|
|
40
|
+
"@sebastienrousseau/crypto-lib": "0.0.25"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/chai": "^5.2.3",
|