anonproxy 0.2.0__tar.gz → 0.2.1__tar.gz

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 (61) hide show
  1. {anonproxy-0.2.0 → anonproxy-0.2.1}/PKG-INFO +25 -1
  2. {anonproxy-0.2.0 → anonproxy-0.2.1}/README.md +24 -0
  3. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/proxy/app.py +1 -1
  4. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy.egg-info/PKG-INFO +25 -1
  5. {anonproxy-0.2.0 → anonproxy-0.2.1}/pyproject.toml +1 -1
  6. {anonproxy-0.2.0 → anonproxy-0.2.1}/LICENSE +0 -0
  7. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/__init__.py +0 -0
  8. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/__main__.py +0 -0
  9. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/audit.py +0 -0
  10. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/cli.py +0 -0
  11. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/config.py +0 -0
  12. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/__init__.py +0 -0
  13. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/anonymizer_slm.py +0 -0
  14. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/gliner2_detector.py +0 -0
  15. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/gliner_detector.py +0 -0
  16. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/llm_detector.py +0 -0
  17. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/openai_pii_detector.py +0 -0
  18. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/piiranha_detector.py +0 -0
  19. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/regex_detector.py +0 -0
  20. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/detectors/scope_detector.py +0 -0
  21. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/engine.py +0 -0
  22. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/mcp_wrapper.py +0 -0
  23. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/profiles.py +0 -0
  24. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/proxy/__init__.py +0 -0
  25. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/proxy/streaming.py +0 -0
  26. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/proxy/transform.py +0 -0
  27. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/restorer.py +0 -0
  28. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/surrogates.py +0 -0
  29. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/vault.py +0 -0
  30. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/verify.py +0 -0
  31. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy/wizard.py +0 -0
  32. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy.egg-info/SOURCES.txt +0 -0
  33. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy.egg-info/dependency_links.txt +0 -0
  34. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy.egg-info/entry_points.txt +0 -0
  35. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy.egg-info/requires.txt +0 -0
  36. {anonproxy-0.2.0 → anonproxy-0.2.1}/anonproxy.egg-info/top_level.txt +0 -0
  37. {anonproxy-0.2.0 → anonproxy-0.2.1}/setup.cfg +0 -0
  38. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_audit.py +0 -0
  39. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_audit_confidence.py +0 -0
  40. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_config.py +0 -0
  41. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_detectors.py +0 -0
  42. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_gemini.py +0 -0
  43. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_llm_detector.py +0 -0
  44. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_mcp_wrapper.py +0 -0
  45. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_packaging.py +0 -0
  46. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_polish.py +0 -0
  47. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_profiles.py +0 -0
  48. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_proxy.py +0 -0
  49. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_regex_quality.py +0 -0
  50. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_restorer_fuzz.py +0 -0
  51. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_roundtrip.py +0 -0
  52. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_sanitize_empty_blocks.py +0 -0
  53. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_scope.py +0 -0
  54. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_streaming.py +0 -0
  55. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_streaming_tooljson.py +0 -0
  56. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_tool_calls.py +0 -0
  57. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_vault.py +0 -0
  58. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_vault_crypto.py +0 -0
  59. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_vault_prune.py +0 -0
  60. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_verify.py +0 -0
  61. {anonproxy-0.2.0 → anonproxy-0.2.1}/tests/test_webapp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anonproxy
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Reversible anonymization proxy for sending pentest data to LLMs
5
5
  License: MIT
6
6
  Requires-Python: >=3.10
@@ -304,6 +304,30 @@ echo 'Host dc01.acmecorp.local at 10.20.0.10, NTLM 8846f7eaee8fb117ad06bdd830b75
304
304
  | python -m anonproxy anon --engagement acme-2026
305
305
  ```
306
306
 
307
+ ## Using it from Burp Suite
308
+
309
+ Three ways, all sharing one vault — the same value is always the same
310
+ surrogate across Claude Code, the OpenAI SDK and Burp:
311
+
312
+ 1. **Claude Code / MCP (most common)** — nothing to configure in Burp. Your
313
+ MCP tool results flow through the proxy (`ANTHROPIC_BASE_URL`), which
314
+ anonymizes them like any other tool output.
315
+ 2. **Right-click → Copy anonymized** — select any request/response in Proxy
316
+ history, Repeater or a message editor, right-click, and the full HTTP
317
+ text lands on your clipboard with surrogates applied. Paste into
318
+ claude.ai, ChatGPT, a ticket — anywhere. Fails closed: if the engine is
319
+ unreachable, nothing is copied.
320
+ 3. **Repeater pointed at an LLM endpoint** — add the header `X-Anonproxy:
321
+ anon` and the extension anonymizes the Cookie header and body on the way
322
+ out, then deanonymizes the response.
323
+
324
+ The extension follows the **engine's active engagement** automatically
325
+ (whatever the menubar started) — no more drifting back to `default`.
326
+ Override with `-Danonproxy.engagement=acme-2026` if you ever want it
327
+ deliberately pinned. Grab `anonproxy-burp.jar` from the
328
+ [Releases](../../releases) page (or build: `cd burp && gradle jar`), load it
329
+ via Extensions → Add → Java. Details in `burp/README.md`.
330
+
307
331
  ## End-to-end example (no Burp)
308
332
 
309
333
  Send real tool output to a real LLM through the proxy and get a useful answer
@@ -270,6 +270,30 @@ echo 'Host dc01.acmecorp.local at 10.20.0.10, NTLM 8846f7eaee8fb117ad06bdd830b75
270
270
  | python -m anonproxy anon --engagement acme-2026
271
271
  ```
272
272
 
273
+ ## Using it from Burp Suite
274
+
275
+ Three ways, all sharing one vault — the same value is always the same
276
+ surrogate across Claude Code, the OpenAI SDK and Burp:
277
+
278
+ 1. **Claude Code / MCP (most common)** — nothing to configure in Burp. Your
279
+ MCP tool results flow through the proxy (`ANTHROPIC_BASE_URL`), which
280
+ anonymizes them like any other tool output.
281
+ 2. **Right-click → Copy anonymized** — select any request/response in Proxy
282
+ history, Repeater or a message editor, right-click, and the full HTTP
283
+ text lands on your clipboard with surrogates applied. Paste into
284
+ claude.ai, ChatGPT, a ticket — anywhere. Fails closed: if the engine is
285
+ unreachable, nothing is copied.
286
+ 3. **Repeater pointed at an LLM endpoint** — add the header `X-Anonproxy:
287
+ anon` and the extension anonymizes the Cookie header and body on the way
288
+ out, then deanonymizes the response.
289
+
290
+ The extension follows the **engine's active engagement** automatically
291
+ (whatever the menubar started) — no more drifting back to `default`.
292
+ Override with `-Danonproxy.engagement=acme-2026` if you ever want it
293
+ deliberately pinned. Grab `anonproxy-burp.jar` from the
294
+ [Releases](../../releases) page (or build: `cd burp && gradle jar`), load it
295
+ via Extensions → Add → Java. Details in `burp/README.md`.
296
+
273
297
  ## End-to-end example (no Burp)
274
298
 
275
299
  Send real tool output to a real LLM through the proxy and get a useful answer
@@ -87,7 +87,7 @@ def create_app(settings: Settings | None = None,
87
87
  yield
88
88
  await client.aclose()
89
89
 
90
- app = FastAPI(title="Anonproxy", version="0.2.0", lifespan=lifespan)
90
+ app = FastAPI(title="Anonproxy", version="0.2.1", lifespan=lifespan)
91
91
  # exposed for tests/introspection: live engagement -> Engine cache
92
92
  app.state.engines = engines
93
93
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anonproxy
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Reversible anonymization proxy for sending pentest data to LLMs
5
5
  License: MIT
6
6
  Requires-Python: >=3.10
@@ -304,6 +304,30 @@ echo 'Host dc01.acmecorp.local at 10.20.0.10, NTLM 8846f7eaee8fb117ad06bdd830b75
304
304
  | python -m anonproxy anon --engagement acme-2026
305
305
  ```
306
306
 
307
+ ## Using it from Burp Suite
308
+
309
+ Three ways, all sharing one vault — the same value is always the same
310
+ surrogate across Claude Code, the OpenAI SDK and Burp:
311
+
312
+ 1. **Claude Code / MCP (most common)** — nothing to configure in Burp. Your
313
+ MCP tool results flow through the proxy (`ANTHROPIC_BASE_URL`), which
314
+ anonymizes them like any other tool output.
315
+ 2. **Right-click → Copy anonymized** — select any request/response in Proxy
316
+ history, Repeater or a message editor, right-click, and the full HTTP
317
+ text lands on your clipboard with surrogates applied. Paste into
318
+ claude.ai, ChatGPT, a ticket — anywhere. Fails closed: if the engine is
319
+ unreachable, nothing is copied.
320
+ 3. **Repeater pointed at an LLM endpoint** — add the header `X-Anonproxy:
321
+ anon` and the extension anonymizes the Cookie header and body on the way
322
+ out, then deanonymizes the response.
323
+
324
+ The extension follows the **engine's active engagement** automatically
325
+ (whatever the menubar started) — no more drifting back to `default`.
326
+ Override with `-Danonproxy.engagement=acme-2026` if you ever want it
327
+ deliberately pinned. Grab `anonproxy-burp.jar` from the
328
+ [Releases](../../releases) page (or build: `cd burp && gradle jar`), load it
329
+ via Extensions → Add → Java. Details in `burp/README.md`.
330
+
307
331
  ## End-to-end example (no Burp)
308
332
 
309
333
  Send real tool output to a real LLM through the proxy and get a useful answer
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "anonproxy"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "Reversible anonymization proxy for sending pentest data to LLMs"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes