postquant 0.1.2 → 0.2.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.
Files changed (65) hide show
  1. package/README.md +58 -8
  2. package/dist/commands/analyze.d.ts +9 -0
  3. package/dist/commands/analyze.d.ts.map +1 -0
  4. package/dist/commands/analyze.js +119 -0
  5. package/dist/commands/analyze.js.map +1 -0
  6. package/dist/index.js +45 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/output/cbom.d.ts +3 -0
  9. package/dist/output/cbom.d.ts.map +1 -0
  10. package/dist/output/cbom.js +235 -0
  11. package/dist/output/cbom.js.map +1 -0
  12. package/dist/output/json-code.d.ts +3 -0
  13. package/dist/output/json-code.d.ts.map +1 -0
  14. package/dist/output/json-code.js +29 -0
  15. package/dist/output/json-code.js.map +1 -0
  16. package/dist/output/sarif.d.ts +3 -0
  17. package/dist/output/sarif.d.ts.map +1 -0
  18. package/dist/output/sarif.js +240 -0
  19. package/dist/output/sarif.js.map +1 -0
  20. package/dist/output/terminal-code.d.ts +7 -0
  21. package/dist/output/terminal-code.d.ts.map +1 -0
  22. package/dist/output/terminal-code.js +95 -0
  23. package/dist/output/terminal-code.js.map +1 -0
  24. package/dist/output/terminal.d.ts.map +1 -1
  25. package/dist/output/terminal.js +14 -2
  26. package/dist/output/terminal.js.map +1 -1
  27. package/dist/scanner/code/classifier.d.ts +9 -0
  28. package/dist/scanner/code/classifier.d.ts.map +1 -0
  29. package/dist/scanner/code/classifier.js +19 -0
  30. package/dist/scanner/code/classifier.js.map +1 -0
  31. package/dist/scanner/code/discovery.d.ts +17 -0
  32. package/dist/scanner/code/discovery.d.ts.map +1 -0
  33. package/dist/scanner/code/discovery.js +167 -0
  34. package/dist/scanner/code/discovery.js.map +1 -0
  35. package/dist/scanner/code/grader.d.ts +27 -0
  36. package/dist/scanner/code/grader.d.ts.map +1 -0
  37. package/dist/scanner/code/grader.js +115 -0
  38. package/dist/scanner/code/grader.js.map +1 -0
  39. package/dist/scanner/code/matcher.d.ts +11 -0
  40. package/dist/scanner/code/matcher.d.ts.map +1 -0
  41. package/dist/scanner/code/matcher.js +208 -0
  42. package/dist/scanner/code/matcher.js.map +1 -0
  43. package/dist/scanner/code/patterns/go.d.ts +3 -0
  44. package/dist/scanner/code/patterns/go.d.ts.map +1 -0
  45. package/dist/scanner/code/patterns/go.js +226 -0
  46. package/dist/scanner/code/patterns/go.js.map +1 -0
  47. package/dist/scanner/code/patterns/index.d.ts +11 -0
  48. package/dist/scanner/code/patterns/index.d.ts.map +1 -0
  49. package/dist/scanner/code/patterns/index.js +20 -0
  50. package/dist/scanner/code/patterns/index.js.map +1 -0
  51. package/dist/scanner/code/patterns/java.d.ts +3 -0
  52. package/dist/scanner/code/patterns/java.d.ts.map +1 -0
  53. package/dist/scanner/code/patterns/java.js +239 -0
  54. package/dist/scanner/code/patterns/java.js.map +1 -0
  55. package/dist/scanner/code/patterns/javascript.d.ts +3 -0
  56. package/dist/scanner/code/patterns/javascript.d.ts.map +1 -0
  57. package/dist/scanner/code/patterns/javascript.js +243 -0
  58. package/dist/scanner/code/patterns/javascript.js.map +1 -0
  59. package/dist/scanner/code/patterns/python.d.ts +3 -0
  60. package/dist/scanner/code/patterns/python.d.ts.map +1 -0
  61. package/dist/scanner/code/patterns/python.js +255 -0
  62. package/dist/scanner/code/patterns/python.js.map +1 -0
  63. package/dist/types/index.d.ts +118 -0
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/package.json +1 -1
@@ -0,0 +1,226 @@
1
+ export const goPatterns = [
2
+ {
3
+ id: 'go-rsa-keygen',
4
+ language: 'go',
5
+ category: 'asymmetric-encryption',
6
+ algorithm: 'RSA',
7
+ risk: 'critical',
8
+ confidence: 'high',
9
+ importPatterns: [/"crypto\/rsa"/],
10
+ callPatterns: [/rsa\.GenerateKey\s*\(/],
11
+ keySizeExtractor: /GenerateKey\s*\([^,]*,\s*(\d+)\s*\)/,
12
+ description: "RSA key generation is vulnerable to quantum attacks via Shor's algorithm",
13
+ migration: 'Migrate to ML-KEM (FIPS 203) for encryption or ML-DSA (FIPS 204) for signatures',
14
+ nistRef: 'FIPS 203/204',
15
+ cweId: 'CWE-327',
16
+ },
17
+ {
18
+ id: 'go-rsa-sign',
19
+ language: 'go',
20
+ category: 'digital-signature',
21
+ algorithm: 'RSA',
22
+ risk: 'critical',
23
+ confidence: 'high',
24
+ callPatterns: [
25
+ /rsa\.SignPKCS1v15\s*\(/,
26
+ /rsa\.SignPSS\s*\(/,
27
+ ],
28
+ description: "RSA digital signatures are vulnerable to quantum attacks via Shor's algorithm",
29
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
30
+ nistRef: 'FIPS 204',
31
+ cweId: 'CWE-327',
32
+ },
33
+ {
34
+ id: 'go-rsa-encrypt',
35
+ language: 'go',
36
+ category: 'asymmetric-encryption',
37
+ algorithm: 'RSA',
38
+ risk: 'critical',
39
+ confidence: 'high',
40
+ callPatterns: [
41
+ /rsa\.EncryptOAEP\s*\(/,
42
+ /rsa\.EncryptPKCS1v15\s*\(/,
43
+ /rsa\.DecryptOAEP\s*\(/,
44
+ /rsa\.DecryptPKCS1v15\s*\(/,
45
+ ],
46
+ description: "RSA encryption is vulnerable to quantum attacks via Shor's algorithm",
47
+ migration: 'Migrate to ML-KEM (FIPS 203) for key encapsulation',
48
+ nistRef: 'FIPS 203',
49
+ cweId: 'CWE-327',
50
+ },
51
+ {
52
+ id: 'go-ecdsa-keygen',
53
+ language: 'go',
54
+ category: 'asymmetric-encryption',
55
+ algorithm: 'ECDSA',
56
+ risk: 'critical',
57
+ confidence: 'high',
58
+ importPatterns: [/"crypto\/ecdsa"/],
59
+ callPatterns: [/ecdsa\.GenerateKey\s*\(/],
60
+ contextPatterns: [/elliptic\.P(?:224|256|384|521)\s*\(\)/],
61
+ description: "ECDSA key generation is vulnerable to quantum attacks via Shor's algorithm",
62
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
63
+ nistRef: 'FIPS 204',
64
+ cweId: 'CWE-327',
65
+ },
66
+ {
67
+ id: 'go-ecdsa-sign',
68
+ language: 'go',
69
+ category: 'digital-signature',
70
+ algorithm: 'ECDSA',
71
+ risk: 'critical',
72
+ confidence: 'high',
73
+ callPatterns: [
74
+ /ecdsa\.Sign\s*\(/,
75
+ /ecdsa\.SignASN1\s*\(/,
76
+ /ecdsa\.Verify\s*\(/,
77
+ /ecdsa\.VerifyASN1\s*\(/,
78
+ ],
79
+ description: "ECDSA signing/verification is vulnerable to quantum attacks via Shor's algorithm",
80
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
81
+ nistRef: 'FIPS 204',
82
+ cweId: 'CWE-327',
83
+ },
84
+ {
85
+ id: 'go-ed25519',
86
+ language: 'go',
87
+ category: 'digital-signature',
88
+ algorithm: 'Ed25519',
89
+ risk: 'critical',
90
+ confidence: 'high',
91
+ importPatterns: [
92
+ /"crypto\/ed25519"/,
93
+ /"golang\.org\/x\/crypto\/ed25519"/,
94
+ ],
95
+ callPatterns: [
96
+ /ed25519\.GenerateKey\s*\(/,
97
+ /ed25519\.Sign\s*\(/,
98
+ ],
99
+ description: "Ed25519 signatures are vulnerable to quantum attacks via Shor's algorithm",
100
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
101
+ nistRef: 'FIPS 204',
102
+ cweId: 'CWE-327',
103
+ },
104
+ {
105
+ id: 'go-dsa-keygen',
106
+ language: 'go',
107
+ category: 'digital-signature',
108
+ algorithm: 'DSA',
109
+ risk: 'critical',
110
+ confidence: 'high',
111
+ importPatterns: [/"crypto\/dsa"/],
112
+ callPatterns: [
113
+ /dsa\.GenerateKey\s*\(/,
114
+ /dsa\.GenerateParameters\s*\(/,
115
+ ],
116
+ description: "DSA is vulnerable to quantum attacks via Shor's algorithm",
117
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
118
+ nistRef: 'FIPS 204',
119
+ cweId: 'CWE-327',
120
+ },
121
+ {
122
+ id: 'go-curve25519',
123
+ language: 'go',
124
+ category: 'key-exchange',
125
+ algorithm: 'X25519',
126
+ risk: 'critical',
127
+ confidence: 'high',
128
+ importPatterns: [/"golang\.org\/x\/crypto\/curve25519"/],
129
+ callPatterns: [
130
+ /curve25519\.X25519\s*\(/,
131
+ /curve25519\.ScalarMult\s*\(/,
132
+ ],
133
+ description: "Curve25519 key exchange is vulnerable to quantum attacks via Shor's algorithm",
134
+ migration: 'Migrate to ML-KEM (FIPS 203) for key encapsulation',
135
+ nistRef: 'FIPS 203',
136
+ cweId: 'CWE-327',
137
+ },
138
+ {
139
+ id: 'go-nacl-box',
140
+ language: 'go',
141
+ category: 'key-exchange',
142
+ algorithm: 'NaCl-Box',
143
+ risk: 'critical',
144
+ confidence: 'high',
145
+ importPatterns: [
146
+ /"golang\.org\/x\/crypto\/nacl\/box"/,
147
+ /"golang\.org\/x\/crypto\/nacl\/sign"/,
148
+ ],
149
+ callPatterns: [
150
+ /box\.GenerateKey\s*\(/,
151
+ /box\.Seal\s*\(/,
152
+ /box\.Open\s*\(/,
153
+ /sign\.GenerateKey\s*\(/,
154
+ ],
155
+ description: "NaCl box/sign uses Curve25519/Ed25519, vulnerable to quantum attacks",
156
+ migration: 'Migrate to ML-KEM (FIPS 203) for key exchange and ML-DSA (FIPS 204) for signatures',
157
+ nistRef: 'FIPS 203/204',
158
+ cweId: 'CWE-327',
159
+ },
160
+ {
161
+ id: 'go-md5',
162
+ language: 'go',
163
+ category: 'weak-hash',
164
+ algorithm: 'MD5',
165
+ risk: 'critical',
166
+ confidence: 'high',
167
+ importPatterns: [/"crypto\/md5"/],
168
+ callPatterns: [
169
+ /md5\.New\s*\(/,
170
+ /md5\.Sum\s*\(/,
171
+ ],
172
+ description: 'MD5 is cryptographically broken and unsuitable for any security use',
173
+ migration: 'Migrate to SHA-256 or SHA-3 for hashing',
174
+ cweId: 'CWE-328',
175
+ },
176
+ {
177
+ id: 'go-sha1',
178
+ language: 'go',
179
+ category: 'weak-hash',
180
+ algorithm: 'SHA-1',
181
+ risk: 'critical',
182
+ confidence: 'high',
183
+ importPatterns: [/"crypto\/sha1"/],
184
+ callPatterns: [
185
+ /sha1\.New\s*\(/,
186
+ /sha1\.Sum\s*\(/,
187
+ ],
188
+ description: 'SHA-1 is cryptographically broken with practical collision attacks',
189
+ migration: 'Migrate to SHA-256 or SHA-3 for hashing',
190
+ cweId: 'CWE-328',
191
+ },
192
+ {
193
+ id: 'go-sha256',
194
+ language: 'go',
195
+ category: 'safe-hash',
196
+ algorithm: 'SHA-256',
197
+ risk: 'safe',
198
+ confidence: 'high',
199
+ importPatterns: [
200
+ /"crypto\/sha256"/,
201
+ /"crypto\/sha512"/,
202
+ ],
203
+ callPatterns: [
204
+ /sha256\.New\s*\(/,
205
+ /sha256\.Sum256\s*\(/,
206
+ /sha512\.New\s*\(/,
207
+ /sha512\.Sum512\s*\(/,
208
+ /sha512\.New384\s*\(/,
209
+ ],
210
+ description: 'SHA-256/384/512 are quantum-resistant hash functions',
211
+ migration: 'No migration needed — already quantum-safe',
212
+ },
213
+ {
214
+ id: 'go-aes',
215
+ language: 'go',
216
+ category: 'weak-symmetric',
217
+ algorithm: 'AES',
218
+ risk: 'moderate',
219
+ confidence: 'medium',
220
+ importPatterns: [/"crypto\/aes"/],
221
+ callPatterns: [/aes\.NewCipher\s*\(/],
222
+ description: "AES with 128-bit keys provides reduced security against quantum attacks (Grover's algorithm)",
223
+ migration: 'Use AES-256 (32-byte key) for quantum-resistant symmetric encryption',
224
+ },
225
+ ];
226
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../../src/scanner/code/patterns/go.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC;QACE,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,uBAAuB;QACjC,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,eAAe,CAAC;QACjC,YAAY,EAAE,CAAC,uBAAuB,CAAC;QACvC,gBAAgB,EAAE,qCAAqC;QACvD,WAAW,EAAE,0EAA0E;QACvF,SAAS,EAAE,iFAAiF;QAC5F,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE;YACZ,wBAAwB;YACxB,mBAAmB;SACpB;QACD,WAAW,EAAE,+EAA+E;QAC5F,SAAS,EAAE,qDAAqD;QAChE,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,uBAAuB;QACjC,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE;YACZ,uBAAuB;YACvB,2BAA2B;YAC3B,uBAAuB;YACvB,2BAA2B;SAC5B;QACD,WAAW,EAAE,sEAAsE;QACnF,SAAS,EAAE,oDAAoD;QAC/D,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,uBAAuB;QACjC,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,iBAAiB,CAAC;QACnC,YAAY,EAAE,CAAC,yBAAyB,CAAC;QACzC,eAAe,EAAE,CAAC,uCAAuC,CAAC;QAC1D,WAAW,EAAE,4EAA4E;QACzF,SAAS,EAAE,qDAAqD;QAChE,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE;YACZ,kBAAkB;YAClB,sBAAsB;YACtB,oBAAoB;YACpB,wBAAwB;SACzB;QACD,WAAW,EAAE,kFAAkF;QAC/F,SAAS,EAAE,qDAAqD;QAChE,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE;YACd,mBAAmB;YACnB,mCAAmC;SACpC;QACD,YAAY,EAAE;YACZ,2BAA2B;YAC3B,oBAAoB;SACrB;QACD,WAAW,EAAE,2EAA2E;QACxF,SAAS,EAAE,qDAAqD;QAChE,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,eAAe,CAAC;QACjC,YAAY,EAAE;YACZ,uBAAuB;YACvB,8BAA8B;SAC/B;QACD,WAAW,EAAE,2DAA2D;QACxE,SAAS,EAAE,qDAAqD;QAChE,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,sCAAsC,CAAC;QACxD,YAAY,EAAE;YACZ,yBAAyB;YACzB,6BAA6B;SAC9B;QACD,WAAW,EAAE,+EAA+E;QAC5F,SAAS,EAAE,oDAAoD;QAC/D,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE;YACd,qCAAqC;YACrC,sCAAsC;SACvC;QACD,YAAY,EAAE;YACZ,uBAAuB;YACvB,gBAAgB;YAChB,gBAAgB;YAChB,wBAAwB;SACzB;QACD,WAAW,EAAE,sEAAsE;QACnF,SAAS,EAAE,oFAAoF;QAC/F,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,eAAe,CAAC;QACjC,YAAY,EAAE;YACZ,eAAe;YACf,eAAe;SAChB;QACD,WAAW,EAAE,qEAAqE;QAClF,SAAS,EAAE,yCAAyC;QACpD,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,SAAS;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE,CAAC,gBAAgB,CAAC;QAClC,YAAY,EAAE;YACZ,gBAAgB;YAChB,gBAAgB;SACjB;QACD,WAAW,EAAE,oEAAoE;QACjF,SAAS,EAAE,yCAAyC;QACpD,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,WAAW;QACf,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,MAAM;QAClB,cAAc,EAAE;YACd,kBAAkB;YAClB,kBAAkB;SACnB;QACD,YAAY,EAAE;YACZ,kBAAkB;YAClB,qBAAqB;YACrB,kBAAkB;YAClB,qBAAqB;YACrB,qBAAqB;SACtB;QACD,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE,4CAA4C;KACxD;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,gBAAgB;QAC1B,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,CAAC,eAAe,CAAC;QACjC,YAAY,EAAE,CAAC,qBAAqB,CAAC;QACrC,WAAW,EAAE,8FAA8F;QAC3G,SAAS,EAAE,sEAAsE;KAClF;CACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CryptoPattern, Language } from '../../../types/index.js';
2
+ import { pythonPatterns } from './python.js';
3
+ import { javascriptPatterns } from './javascript.js';
4
+ import { goPatterns } from './go.js';
5
+ import { javaPatterns } from './java.js';
6
+ /** Get all patterns for a specific language. */
7
+ export declare function getPatterns(language: Language): CryptoPattern[];
8
+ /** Get all patterns across all languages. */
9
+ export declare function getAllPatterns(): CryptoPattern[];
10
+ export { pythonPatterns, javascriptPatterns, goPatterns, javaPatterns };
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/scanner/code/patterns/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AASzC,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,EAAE,CAE/D;AAED,6CAA6C;AAC7C,wBAAgB,cAAc,IAAI,aAAa,EAAE,CAEhD;AAED,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { pythonPatterns } from './python.js';
2
+ import { javascriptPatterns } from './javascript.js';
3
+ import { goPatterns } from './go.js';
4
+ import { javaPatterns } from './java.js';
5
+ const patternsByLanguage = {
6
+ python: pythonPatterns,
7
+ javascript: javascriptPatterns,
8
+ go: goPatterns,
9
+ java: javaPatterns,
10
+ };
11
+ /** Get all patterns for a specific language. */
12
+ export function getPatterns(language) {
13
+ return patternsByLanguage[language] ?? [];
14
+ }
15
+ /** Get all patterns across all languages. */
16
+ export function getAllPatterns() {
17
+ return Object.values(patternsByLanguage).flat();
18
+ }
19
+ export { pythonPatterns, javascriptPatterns, goPatterns, javaPatterns };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/scanner/code/patterns/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,kBAAkB,GAAsC;IAC5D,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,kBAAkB;IAC9B,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF,gDAAgD;AAChD,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CryptoPattern } from '../../../types/index.js';
2
+ export declare const javaPatterns: CryptoPattern[];
3
+ //# sourceMappingURL=java.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../../src/scanner/code/patterns/java.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AAExE,eAAO,MAAM,YAAY,EAAE,aAAa,EA6OvC,CAAC"}
@@ -0,0 +1,239 @@
1
+ export const javaPatterns = [
2
+ {
3
+ id: 'java-rsa-keygen',
4
+ language: 'java',
5
+ category: 'asymmetric-encryption',
6
+ algorithm: 'RSA',
7
+ risk: 'critical',
8
+ confidence: 'high',
9
+ importPatterns: [/import\s+java\.security\.KeyPairGenerator\s*;/],
10
+ callPatterns: [
11
+ /KeyPairGenerator\.getInstance\s*\(\s*"RSA"\s*\)/,
12
+ ],
13
+ keySizeExtractor: /\.initialize\s*\(\s*(\d+)\s*\)/,
14
+ description: "RSA key generation is vulnerable to quantum attacks via Shor's algorithm",
15
+ migration: 'Migrate to ML-KEM (FIPS 203) for encryption or ML-DSA (FIPS 204) for signatures',
16
+ nistRef: 'FIPS 203/204',
17
+ cweId: 'CWE-327',
18
+ },
19
+ {
20
+ id: 'java-ec-keygen',
21
+ language: 'java',
22
+ category: 'asymmetric-encryption',
23
+ algorithm: 'ECDSA',
24
+ risk: 'critical',
25
+ confidence: 'high',
26
+ callPatterns: [
27
+ /KeyPairGenerator\.getInstance\s*\(\s*"EC"\s*\)/,
28
+ ],
29
+ contextPatterns: [/ECGenParameterSpec|secp256r1|secp384r1|P-256|P-384/],
30
+ description: "EC key generation is vulnerable to quantum attacks via Shor's algorithm",
31
+ migration: 'Migrate to ML-DSA (FIPS 204) for signatures or ML-KEM (FIPS 203) for key exchange',
32
+ nistRef: 'FIPS 203/204',
33
+ cweId: 'CWE-327',
34
+ },
35
+ {
36
+ id: 'java-dsa-keygen',
37
+ language: 'java',
38
+ category: 'digital-signature',
39
+ algorithm: 'DSA',
40
+ risk: 'critical',
41
+ confidence: 'high',
42
+ callPatterns: [
43
+ /KeyPairGenerator\.getInstance\s*\(\s*"DSA"\s*\)/,
44
+ ],
45
+ description: "DSA key generation is vulnerable to quantum attacks via Shor's algorithm",
46
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
47
+ nistRef: 'FIPS 204',
48
+ cweId: 'CWE-327',
49
+ },
50
+ {
51
+ id: 'java-dh-keygen',
52
+ language: 'java',
53
+ category: 'key-exchange',
54
+ algorithm: 'DH',
55
+ risk: 'critical',
56
+ confidence: 'high',
57
+ callPatterns: [
58
+ /KeyPairGenerator\.getInstance\s*\(\s*"DH"\s*\)/,
59
+ /KeyPairGenerator\.getInstance\s*\(\s*"DiffieHellman"\s*\)/,
60
+ ],
61
+ description: "Diffie-Hellman key exchange is vulnerable to quantum attacks via Shor's algorithm",
62
+ migration: 'Migrate to ML-KEM (FIPS 203) for key encapsulation',
63
+ nistRef: 'FIPS 203',
64
+ cweId: 'CWE-327',
65
+ },
66
+ {
67
+ id: 'java-eddsa-keygen',
68
+ language: 'java',
69
+ category: 'digital-signature',
70
+ algorithm: 'EdDSA',
71
+ risk: 'critical',
72
+ confidence: 'high',
73
+ callPatterns: [
74
+ /KeyPairGenerator\.getInstance\s*\(\s*"EdDSA"\s*\)/,
75
+ /KeyPairGenerator\.getInstance\s*\(\s*"Ed25519"\s*\)/,
76
+ /KeyPairGenerator\.getInstance\s*\(\s*"Ed448"\s*\)/,
77
+ ],
78
+ description: "EdDSA signatures are vulnerable to quantum attacks via Shor's algorithm",
79
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
80
+ nistRef: 'FIPS 204',
81
+ cweId: 'CWE-327',
82
+ },
83
+ {
84
+ id: 'java-rsa-sign',
85
+ language: 'java',
86
+ category: 'digital-signature',
87
+ algorithm: 'RSA',
88
+ risk: 'critical',
89
+ confidence: 'high',
90
+ importPatterns: [/import\s+java\.security\.Signature\s*;/],
91
+ callPatterns: [
92
+ /Signature\.getInstance\s*\(\s*"SHA\d+withRSA"\s*\)/,
93
+ /Signature\.getInstance\s*\(\s*"RSASSA-PSS"\s*\)/,
94
+ ],
95
+ description: "RSA digital signatures are vulnerable to quantum attacks via Shor's algorithm",
96
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
97
+ nistRef: 'FIPS 204',
98
+ cweId: 'CWE-327',
99
+ },
100
+ {
101
+ id: 'java-ecdsa-sign',
102
+ language: 'java',
103
+ category: 'digital-signature',
104
+ algorithm: 'ECDSA',
105
+ risk: 'critical',
106
+ confidence: 'high',
107
+ callPatterns: [
108
+ /Signature\.getInstance\s*\(\s*"SHA\d+withECDSA"\s*\)/,
109
+ ],
110
+ description: "ECDSA signatures are vulnerable to quantum attacks via Shor's algorithm",
111
+ migration: 'Migrate to ML-DSA (FIPS 204) for digital signatures',
112
+ nistRef: 'FIPS 204',
113
+ cweId: 'CWE-327',
114
+ },
115
+ {
116
+ id: 'java-key-agreement',
117
+ language: 'java',
118
+ category: 'key-exchange',
119
+ algorithm: 'ECDH/DH',
120
+ risk: 'critical',
121
+ confidence: 'high',
122
+ importPatterns: [/import\s+javax\.crypto\.KeyAgreement\s*;/],
123
+ callPatterns: [
124
+ /KeyAgreement\.getInstance\s*\(\s*"ECDH"\s*\)/,
125
+ /KeyAgreement\.getInstance\s*\(\s*"DH"\s*\)/,
126
+ /KeyAgreement\.getInstance\s*\(\s*"DiffieHellman"\s*\)/,
127
+ /KeyAgreement\.getInstance\s*\(\s*"X25519"\s*\)/,
128
+ /KeyAgreement\.getInstance\s*\(\s*"X448"\s*\)/,
129
+ /KeyAgreement\.getInstance\s*\(\s*"XDH"\s*\)/,
130
+ ],
131
+ description: "Key agreement protocols (ECDH/DH/X25519) are vulnerable to quantum attacks",
132
+ migration: 'Migrate to ML-KEM (FIPS 203) for key encapsulation',
133
+ nistRef: 'FIPS 203',
134
+ cweId: 'CWE-327',
135
+ },
136
+ {
137
+ id: 'java-rsa-cipher',
138
+ language: 'java',
139
+ category: 'asymmetric-encryption',
140
+ algorithm: 'RSA',
141
+ risk: 'critical',
142
+ confidence: 'high',
143
+ importPatterns: [/import\s+javax\.crypto\.Cipher\s*;/],
144
+ callPatterns: [
145
+ /Cipher\.getInstance\s*\(\s*"RSA\//,
146
+ ],
147
+ description: "RSA encryption is vulnerable to quantum attacks via Shor's algorithm",
148
+ migration: 'Migrate to ML-KEM (FIPS 203) for key encapsulation',
149
+ nistRef: 'FIPS 203',
150
+ cweId: 'CWE-327',
151
+ },
152
+ {
153
+ id: 'java-3des',
154
+ language: 'java',
155
+ category: 'broken-cipher',
156
+ algorithm: '3DES',
157
+ risk: 'critical',
158
+ confidence: 'high',
159
+ callPatterns: [
160
+ /Cipher\.getInstance\s*\(\s*"DESede\//,
161
+ /Cipher\.getInstance\s*\(\s*"DES\//,
162
+ ],
163
+ description: '3DES/DES is deprecated with inadequate security margins',
164
+ migration: 'Migrate to AES-256-GCM for symmetric encryption',
165
+ cweId: 'CWE-327',
166
+ },
167
+ {
168
+ id: 'java-md5',
169
+ language: 'java',
170
+ category: 'weak-hash',
171
+ algorithm: 'MD5',
172
+ risk: 'critical',
173
+ confidence: 'high',
174
+ importPatterns: [
175
+ /import\s+java\.security\.MessageDigest\s*;/,
176
+ /import\s+javax\.crypto\.Mac\s*;/,
177
+ ],
178
+ callPatterns: [
179
+ /MessageDigest\.getInstance\s*\(\s*"MD5"\s*\)/,
180
+ /Mac\.getInstance\s*\(\s*"HmacMD5"\s*\)/,
181
+ ],
182
+ description: 'MD5 is cryptographically broken and unsuitable for any security use',
183
+ migration: 'Migrate to SHA-256 or SHA-3 for hashing',
184
+ cweId: 'CWE-328',
185
+ },
186
+ {
187
+ id: 'java-sha1',
188
+ language: 'java',
189
+ category: 'weak-hash',
190
+ algorithm: 'SHA-1',
191
+ risk: 'critical',
192
+ confidence: 'high',
193
+ callPatterns: [
194
+ /MessageDigest\.getInstance\s*\(\s*"SHA-1"\s*\)/,
195
+ /Mac\.getInstance\s*\(\s*"HmacSHA1"\s*\)/,
196
+ ],
197
+ description: 'SHA-1 is cryptographically broken with practical collision attacks',
198
+ migration: 'Migrate to SHA-256 or SHA-3 for hashing',
199
+ cweId: 'CWE-328',
200
+ },
201
+ {
202
+ id: 'java-sha256',
203
+ language: 'java',
204
+ category: 'safe-hash',
205
+ algorithm: 'SHA-256',
206
+ risk: 'safe',
207
+ confidence: 'high',
208
+ callPatterns: [
209
+ /MessageDigest\.getInstance\s*\(\s*"SHA-256"\s*\)/,
210
+ /MessageDigest\.getInstance\s*\(\s*"SHA-384"\s*\)/,
211
+ /MessageDigest\.getInstance\s*\(\s*"SHA-512"\s*\)/,
212
+ /MessageDigest\.getInstance\s*\(\s*"SHA3-256"\s*\)/,
213
+ /MessageDigest\.getInstance\s*\(\s*"SHA3-384"\s*\)/,
214
+ /MessageDigest\.getInstance\s*\(\s*"SHA3-512"\s*\)/,
215
+ /Mac\.getInstance\s*\(\s*"HmacSHA256"\s*\)/,
216
+ /Mac\.getInstance\s*\(\s*"HmacSHA384"\s*\)/,
217
+ /Mac\.getInstance\s*\(\s*"HmacSHA512"\s*\)/,
218
+ ],
219
+ description: 'SHA-256/384/512/SHA-3 are quantum-resistant hash functions',
220
+ migration: 'No migration needed — already quantum-safe',
221
+ },
222
+ {
223
+ id: 'java-aes-keygen',
224
+ language: 'java',
225
+ category: 'weak-symmetric',
226
+ algorithm: 'AES',
227
+ risk: 'moderate',
228
+ confidence: 'medium',
229
+ importPatterns: [/import\s+javax\.crypto\.KeyGenerator\s*;/],
230
+ callPatterns: [
231
+ /KeyGenerator\.getInstance\s*\(\s*"AES"\s*\)/,
232
+ ],
233
+ keySizeExtractor: /\.init\s*\(\s*(\d+)\s*\)/,
234
+ keySizeRisk: (size) => (size >= 256 ? 'safe' : 'moderate'),
235
+ description: "AES-128 provides reduced security against quantum attacks (Grover's algorithm)",
236
+ migration: 'Use AES-256 for quantum-resistant symmetric encryption',
237
+ },
238
+ ];
239
+ //# sourceMappingURL=java.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../../src/scanner/code/patterns/java.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CryptoPattern } from '../../../types/index.js';
2
+ export declare const javascriptPatterns: CryptoPattern[];
3
+ //# sourceMappingURL=javascript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../src/scanner/code/patterns/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,yBAAyB,CAAC;AAExE,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAiP7C,CAAC"}