@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.
@@ -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;AAgBvH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAO3E;AA0GD,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,GAAG,QAAQ,GAAG,WAAW,EAAE,GAC9C,eAAe,CA+BjB"}
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 QUANTUM_VULNERABLE_MARKERS = ["RSA", "ECC", "ECDSA", "ED25519"];
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))
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EAGZ,MAAM,SAAS,CAAC;AA8OjB,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAY,GACnB,WAAW,EAAE,CA8Bf;AAKD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CA6C5D"}
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: /\bml[-_]?kem[-_]?768\b/i,
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.9",
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.9"
40
+ "@sebastienrousseau/crypto-lib": "0.0.25"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/chai": "^5.2.3",