g2cv-casm 0.1.0.post1.dev2__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 (129) hide show
  1. g2cv_casm-0.1.0.post1.dev2/.env.example +2 -0
  2. g2cv_casm-0.1.0.post1.dev2/.github/workflows/ci.yml +43 -0
  3. g2cv_casm-0.1.0.post1.dev2/.gitignore +36 -0
  4. g2cv_casm-0.1.0.post1.dev2/CODE_OF_CONDUCT.md +24 -0
  5. g2cv_casm-0.1.0.post1.dev2/CONTRIBUTING.md +41 -0
  6. g2cv_casm-0.1.0.post1.dev2/LICENSE +620 -0
  7. g2cv_casm-0.1.0.post1.dev2/Makefile +37 -0
  8. g2cv_casm-0.1.0.post1.dev2/PKG-INFO +257 -0
  9. g2cv_casm-0.1.0.post1.dev2/README.md +244 -0
  10. g2cv_casm-0.1.0.post1.dev2/SECURITY.md +19 -0
  11. g2cv_casm-0.1.0.post1.dev2/brain/__init__.py +0 -0
  12. g2cv_casm-0.1.0.post1.dev2/brain/adapters/__init__.py +1 -0
  13. g2cv_casm-0.1.0.post1.dev2/brain/adapters/dns_enum_gateway.py +45 -0
  14. g2cv_casm-0.1.0.post1.dev2/brain/adapters/evidence_store_fs.py +70 -0
  15. g2cv_casm-0.1.0.post1.dev2/brain/adapters/http_verify_gateway.py +45 -0
  16. g2cv_casm-0.1.0.post1.dev2/brain/adapters/publisher_noop.py +11 -0
  17. g2cv_casm-0.1.0.post1.dev2/brain/adapters/tool_gateway.py +166 -0
  18. g2cv_casm-0.1.0.post1.dev2/brain/cli/__init__.py +1 -0
  19. g2cv_casm-0.1.0.post1.dev2/brain/cli/casm.py +554 -0
  20. g2cv_casm-0.1.0.post1.dev2/brain/core/__init__.py +1 -0
  21. g2cv_casm-0.1.0.post1.dev2/brain/core/diff.py +204 -0
  22. g2cv_casm-0.1.0.post1.dev2/brain/core/dns_enum.py +556 -0
  23. g2cv_casm-0.1.0.post1.dev2/brain/core/evidence_view.py +142 -0
  24. g2cv_casm-0.1.0.post1.dev2/brain/core/http_verify.py +100 -0
  25. g2cv_casm-0.1.0.post1.dev2/brain/core/inventory.py +121 -0
  26. g2cv_casm-0.1.0.post1.dev2/brain/core/migrate.py +142 -0
  27. g2cv_casm-0.1.0.post1.dev2/brain/core/models.py +62 -0
  28. g2cv_casm-0.1.0.post1.dev2/brain/core/orchestrator.py +199 -0
  29. g2cv_casm-0.1.0.post1.dev2/brain/core/pdf_report.py +1393 -0
  30. g2cv_casm-0.1.0.post1.dev2/brain/core/pdf_styles.py +234 -0
  31. g2cv_casm-0.1.0.post1.dev2/brain/core/redaction.py +38 -0
  32. g2cv_casm-0.1.0.post1.dev2/brain/core/report.py +220 -0
  33. g2cv_casm-0.1.0.post1.dev2/brain/core/sarif.py +109 -0
  34. g2cv_casm-0.1.0.post1.dev2/brain/core/schema_version.py +2 -0
  35. g2cv_casm-0.1.0.post1.dev2/brain/core/scope.py +222 -0
  36. g2cv_casm-0.1.0.post1.dev2/brain/core/unified.py +1035 -0
  37. g2cv_casm-0.1.0.post1.dev2/brain/core/url_canonical.py +46 -0
  38. g2cv_casm-0.1.0.post1.dev2/brain/core/version.py +30 -0
  39. g2cv_casm-0.1.0.post1.dev2/brain/ports/__init__.py +1 -0
  40. g2cv_casm-0.1.0.post1.dev2/brain/ports/evidence_store.py +39 -0
  41. g2cv_casm-0.1.0.post1.dev2/brain/ports/publisher.py +15 -0
  42. g2cv_casm-0.1.0.post1.dev2/brain/ports/tool_gateway.py +20 -0
  43. g2cv_casm-0.1.0.post1.dev2/brain/tests/fixtures/crt-sh-response.json +4 -0
  44. g2cv_casm-0.1.0.post1.dev2/brain/tests/fixtures/dns-evidence-expected.jsonl +1 -0
  45. g2cv_casm-0.1.0.post1.dev2/brain/tests/fixtures/test-domain.txt +2 -0
  46. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_diff.py +73 -0
  47. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_dns_enum.py +70 -0
  48. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_evidence_view.py +227 -0
  49. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_inventory.py +38 -0
  50. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_migrate.py +32 -0
  51. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_orchestrator.py +203 -0
  52. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_pdf_report.py +129 -0
  53. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_redaction.py +18 -0
  54. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_schemas.py +34 -0
  55. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_scope_guard.py +51 -0
  56. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_unified.py +465 -0
  57. g2cv_casm-0.1.0.post1.dev2/brain/tests/test_url_canonical.py +16 -0
  58. g2cv_casm-0.1.0.post1.dev2/casm +6 -0
  59. g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/dns_enum_request.json +26 -0
  60. g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/dns_enum_response.json +38 -0
  61. g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/http_verify_request.json +38 -0
  62. g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/http_verify_response.json +59 -0
  63. g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/probe_request.json +33 -0
  64. g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/probe_response.json +60 -0
  65. g2cv_casm-0.1.0.post1.dev2/contracts/schemas/dns_enum_request.schema.json +52 -0
  66. g2cv_casm-0.1.0.post1.dev2/contracts/schemas/dns_enum_response.schema.json +80 -0
  67. g2cv_casm-0.1.0.post1.dev2/contracts/schemas/http_verify_request.schema.json +81 -0
  68. g2cv_casm-0.1.0.post1.dev2/contracts/schemas/http_verify_response.schema.json +41 -0
  69. g2cv_casm-0.1.0.post1.dev2/contracts/schemas/tool_request.schema.json +54 -0
  70. g2cv_casm-0.1.0.post1.dev2/contracts/schemas/tool_response.schema.json +69 -0
  71. g2cv_casm-0.1.0.post1.dev2/docs/architecture/data-flow.md +113 -0
  72. g2cv_casm-0.1.0.post1.dev2/docs/architecture/overview.md +93 -0
  73. g2cv_casm-0.1.0.post1.dev2/docs/architecture/python-go-bridge.md +121 -0
  74. g2cv_casm-0.1.0.post1.dev2/docs/assets/casm-dark-logo-with-parent-stacked.svg +14 -0
  75. g2cv_casm-0.1.0.post1.dev2/docs/assets/casm-light-logo-with-parent-stacked.svg +11 -0
  76. g2cv_casm-0.1.0.post1.dev2/docs/assets/casm-logo-with-parent.svg +10 -0
  77. g2cv_casm-0.1.0.post1.dev2/docs/explanation/design-decisions.md +25 -0
  78. g2cv_casm-0.1.0.post1.dev2/docs/explanation/performance.md +42 -0
  79. g2cv_casm-0.1.0.post1.dev2/docs/explanation/security-model.md +25 -0
  80. g2cv_casm-0.1.0.post1.dev2/docs/explanation/trade-offs.md +22 -0
  81. g2cv_casm-0.1.0.post1.dev2/docs/how-to/add-go-package.md +30 -0
  82. g2cv_casm-0.1.0.post1.dev2/docs/how-to/add-python-module.md +27 -0
  83. g2cv_casm-0.1.0.post1.dev2/docs/how-to/contributing.md +36 -0
  84. g2cv_casm-0.1.0.post1.dev2/docs/how-to/debug-cross-language.md +28 -0
  85. g2cv_casm-0.1.0.post1.dev2/docs/how-to/extend-bridge.md +24 -0
  86. g2cv_casm-0.1.0.post1.dev2/docs/how-to/profile-performance.md +33 -0
  87. g2cv_casm-0.1.0.post1.dev2/docs/how-to/testing.md +28 -0
  88. g2cv_casm-0.1.0.post1.dev2/docs/index.md +62 -0
  89. g2cv_casm-0.1.0.post1.dev2/docs/reference/cli.md +87 -0
  90. g2cv_casm-0.1.0.post1.dev2/docs/reference/component-inventory.md +62 -0
  91. g2cv_casm-0.1.0.post1.dev2/docs/reference/configuration.md +64 -0
  92. g2cv_casm-0.1.0.post1.dev2/docs/reference/data-structures.md +64 -0
  93. g2cv_casm-0.1.0.post1.dev2/docs/reference/function-catalog.md +357 -0
  94. g2cv_casm-0.1.0.post1.dev2/docs/reference/function-signature-matrix.md +1924 -0
  95. g2cv_casm-0.1.0.post1.dev2/docs/reference/glossary.md +17 -0
  96. g2cv_casm-0.1.0.post1.dev2/docs/reference/go-api.md +152 -0
  97. g2cv_casm-0.1.0.post1.dev2/docs/reference/python-api.md +197 -0
  98. g2cv_casm-0.1.0.post1.dev2/docs/tutorials/setup-for-beginners.md +64 -0
  99. g2cv_casm-0.1.0.post1.dev2/docs/tutorials/tutorial-1-hello-world.md +37 -0
  100. g2cv_casm-0.1.0.post1.dev2/docs/tutorials/tutorial-2-real-use-case.md +42 -0
  101. g2cv_casm-0.1.0.post1.dev2/docs/tutorials/tutorial-3-advanced-integration.md +50 -0
  102. g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/PKG-INFO +257 -0
  103. g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/SOURCES.txt +127 -0
  104. g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/dependency_links.txt +1 -0
  105. g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/entry_points.txt +3 -0
  106. g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/requires.txt +3 -0
  107. g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/top_level.txt +1 -0
  108. g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/active.go +448 -0
  109. g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/main.go +420 -0
  110. g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/main_test.go +37 -0
  111. g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/passive.go +64 -0
  112. g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/resolver.go +142 -0
  113. g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/wordlist.go +33 -0
  114. g2cv_casm-0.1.0.post1.dev2/hands/cmd/http_verify/main.go +1454 -0
  115. g2cv_casm-0.1.0.post1.dev2/hands/cmd/http_verify/main_test.go +1245 -0
  116. g2cv_casm-0.1.0.post1.dev2/hands/cmd/probe/main.go +213 -0
  117. g2cv_casm-0.1.0.post1.dev2/hands/cmd/probe/main_test.go +161 -0
  118. g2cv_casm-0.1.0.post1.dev2/hands/go.mod +12 -0
  119. g2cv_casm-0.1.0.post1.dev2/hands/go.sum +12 -0
  120. g2cv_casm-0.1.0.post1.dev2/mkdocs.yml +38 -0
  121. g2cv_casm-0.1.0.post1.dev2/pyproject.toml +29 -0
  122. g2cv_casm-0.1.0.post1.dev2/requirements-dev.txt +2 -0
  123. g2cv_casm-0.1.0.post1.dev2/requirements.txt +3 -0
  124. g2cv_casm-0.1.0.post1.dev2/scopes/scope.example.yaml +51 -0
  125. g2cv_casm-0.1.0.post1.dev2/setup.cfg +4 -0
  126. g2cv_casm-0.1.0.post1.dev2/targets/target-harness.example.json +12 -0
  127. g2cv_casm-0.1.0.post1.dev2/wordlists/README.md +20 -0
  128. g2cv_casm-0.1.0.post1.dev2/wordlists/common-subdomains.txt +100 -0
  129. g2cv_casm-0.1.0.post1.dev2/wordlists/extended-subdomains.txt +1000 -0
@@ -0,0 +1,2 @@
1
+ DRY_RUN=true
2
+ ABORT_RUN=false
@@ -0,0 +1,43 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["**"]
6
+ pull_request:
7
+
8
+ jobs:
9
+ test-and-docs:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.11"
20
+
21
+ - name: Set up Go
22
+ uses: actions/setup-go@v5
23
+ with:
24
+ go-version: "1.21"
25
+
26
+ - name: Install Python dependencies
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ python -m pip install -r requirements.txt -r requirements-dev.txt
30
+ python -m pip install -e .
31
+
32
+ - name: Build Go tools
33
+ run: make build-hands
34
+
35
+ - name: Run Python tests
36
+ run: python -m pytest brain/tests
37
+
38
+ - name: Run Go tests
39
+ working-directory: hands
40
+ run: go test ./...
41
+
42
+ - name: Build docs
43
+ run: mkdocs build
@@ -0,0 +1,36 @@
1
+ # macOS
2
+ .DS_Store
3
+
4
+ # Output artifacts
5
+ artifacts/
6
+ runs/
7
+
8
+ # Python
9
+ __pycache__/
10
+ *.pyc
11
+ .pytest_cache/
12
+
13
+ # Go
14
+ hands/bin/
15
+
16
+ # Env
17
+ .env
18
+ .venv/
19
+ venv/
20
+
21
+ # Packaging
22
+ *.egg-info/
23
+ dist/
24
+ build/
25
+
26
+ # Local harness
27
+ scopes/*
28
+ !scopes/scope.example.yaml
29
+ targets/*
30
+ !targets/target-harness.example.json
31
+
32
+ # validation scripts
33
+ validation-scripts/
34
+
35
+ # Mkdocs site
36
+ site/
@@ -0,0 +1,24 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Commitment
4
+
5
+ We are committed to making participation in this project a respectful, harassment-free experience for everyone.
6
+
7
+ ## Expected Behavior
8
+
9
+ - Be respectful and constructive.
10
+ - Assume good intent and discuss ideas, not people.
11
+ - Accept feedback gracefully.
12
+ - Help keep discussions focused and technical.
13
+
14
+ ## Unacceptable Behavior
15
+
16
+ - Harassment, insults, or discriminatory language.
17
+ - Trolling, personal attacks, or sustained disruption.
18
+ - Publishing private information without consent.
19
+
20
+ ## Enforcement
21
+
22
+ Project maintainers may remove, edit, or reject comments, commits, issues, and other contributions that violate this Code of Conduct.
23
+
24
+ For reports, contact: `contact@g2cv.com`.
@@ -0,0 +1,41 @@
1
+ # Contributing to CASM
2
+
3
+ Thanks for your interest in contributing.
4
+
5
+ ## Development Setup
6
+
7
+ ```bash
8
+ python3 -m venv .venv
9
+ source .venv/bin/activate
10
+ python -m pip install --upgrade pip
11
+ python -m pip install -r requirements.txt -r requirements-dev.txt
12
+ python -m pip install -e .
13
+ make build-hands
14
+ ```
15
+
16
+ ## Local Checks Before PR
17
+
18
+ ```bash
19
+ .venv/bin/pytest brain/tests
20
+ go test ./... # from hands/
21
+ .venv/bin/mkdocs build
22
+ ```
23
+
24
+ ## Coding Guidelines
25
+
26
+ - Keep changes focused and small.
27
+ - Add or update tests for behavior changes.
28
+ - Preserve scope-guard safety behavior.
29
+ - Avoid introducing heavy dependencies without strong justification.
30
+ - Keep docs and examples aligned with code changes.
31
+
32
+ ## Pull Requests
33
+
34
+ - Describe why the change is needed.
35
+ - Summarize user-facing impact.
36
+ - Mention test coverage for the change.
37
+ - Link related issues if applicable.
38
+
39
+ ## Security Reports
40
+
41
+ Please report vulnerabilities privately. See `SECURITY.md`.