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.
- g2cv_casm-0.1.0.post1.dev2/.env.example +2 -0
- g2cv_casm-0.1.0.post1.dev2/.github/workflows/ci.yml +43 -0
- g2cv_casm-0.1.0.post1.dev2/.gitignore +36 -0
- g2cv_casm-0.1.0.post1.dev2/CODE_OF_CONDUCT.md +24 -0
- g2cv_casm-0.1.0.post1.dev2/CONTRIBUTING.md +41 -0
- g2cv_casm-0.1.0.post1.dev2/LICENSE +620 -0
- g2cv_casm-0.1.0.post1.dev2/Makefile +37 -0
- g2cv_casm-0.1.0.post1.dev2/PKG-INFO +257 -0
- g2cv_casm-0.1.0.post1.dev2/README.md +244 -0
- g2cv_casm-0.1.0.post1.dev2/SECURITY.md +19 -0
- g2cv_casm-0.1.0.post1.dev2/brain/__init__.py +0 -0
- g2cv_casm-0.1.0.post1.dev2/brain/adapters/__init__.py +1 -0
- g2cv_casm-0.1.0.post1.dev2/brain/adapters/dns_enum_gateway.py +45 -0
- g2cv_casm-0.1.0.post1.dev2/brain/adapters/evidence_store_fs.py +70 -0
- g2cv_casm-0.1.0.post1.dev2/brain/adapters/http_verify_gateway.py +45 -0
- g2cv_casm-0.1.0.post1.dev2/brain/adapters/publisher_noop.py +11 -0
- g2cv_casm-0.1.0.post1.dev2/brain/adapters/tool_gateway.py +166 -0
- g2cv_casm-0.1.0.post1.dev2/brain/cli/__init__.py +1 -0
- g2cv_casm-0.1.0.post1.dev2/brain/cli/casm.py +554 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/__init__.py +1 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/diff.py +204 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/dns_enum.py +556 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/evidence_view.py +142 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/http_verify.py +100 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/inventory.py +121 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/migrate.py +142 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/models.py +62 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/orchestrator.py +199 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/pdf_report.py +1393 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/pdf_styles.py +234 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/redaction.py +38 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/report.py +220 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/sarif.py +109 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/schema_version.py +2 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/scope.py +222 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/unified.py +1035 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/url_canonical.py +46 -0
- g2cv_casm-0.1.0.post1.dev2/brain/core/version.py +30 -0
- g2cv_casm-0.1.0.post1.dev2/brain/ports/__init__.py +1 -0
- g2cv_casm-0.1.0.post1.dev2/brain/ports/evidence_store.py +39 -0
- g2cv_casm-0.1.0.post1.dev2/brain/ports/publisher.py +15 -0
- g2cv_casm-0.1.0.post1.dev2/brain/ports/tool_gateway.py +20 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/fixtures/crt-sh-response.json +4 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/fixtures/dns-evidence-expected.jsonl +1 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/fixtures/test-domain.txt +2 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_diff.py +73 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_dns_enum.py +70 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_evidence_view.py +227 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_inventory.py +38 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_migrate.py +32 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_orchestrator.py +203 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_pdf_report.py +129 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_redaction.py +18 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_schemas.py +34 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_scope_guard.py +51 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_unified.py +465 -0
- g2cv_casm-0.1.0.post1.dev2/brain/tests/test_url_canonical.py +16 -0
- g2cv_casm-0.1.0.post1.dev2/casm +6 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/dns_enum_request.json +26 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/dns_enum_response.json +38 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/http_verify_request.json +38 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/http_verify_response.json +59 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/probe_request.json +33 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/fixtures/probe_response.json +60 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/schemas/dns_enum_request.schema.json +52 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/schemas/dns_enum_response.schema.json +80 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/schemas/http_verify_request.schema.json +81 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/schemas/http_verify_response.schema.json +41 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/schemas/tool_request.schema.json +54 -0
- g2cv_casm-0.1.0.post1.dev2/contracts/schemas/tool_response.schema.json +69 -0
- g2cv_casm-0.1.0.post1.dev2/docs/architecture/data-flow.md +113 -0
- g2cv_casm-0.1.0.post1.dev2/docs/architecture/overview.md +93 -0
- g2cv_casm-0.1.0.post1.dev2/docs/architecture/python-go-bridge.md +121 -0
- g2cv_casm-0.1.0.post1.dev2/docs/assets/casm-dark-logo-with-parent-stacked.svg +14 -0
- g2cv_casm-0.1.0.post1.dev2/docs/assets/casm-light-logo-with-parent-stacked.svg +11 -0
- g2cv_casm-0.1.0.post1.dev2/docs/assets/casm-logo-with-parent.svg +10 -0
- g2cv_casm-0.1.0.post1.dev2/docs/explanation/design-decisions.md +25 -0
- g2cv_casm-0.1.0.post1.dev2/docs/explanation/performance.md +42 -0
- g2cv_casm-0.1.0.post1.dev2/docs/explanation/security-model.md +25 -0
- g2cv_casm-0.1.0.post1.dev2/docs/explanation/trade-offs.md +22 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/add-go-package.md +30 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/add-python-module.md +27 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/contributing.md +36 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/debug-cross-language.md +28 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/extend-bridge.md +24 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/profile-performance.md +33 -0
- g2cv_casm-0.1.0.post1.dev2/docs/how-to/testing.md +28 -0
- g2cv_casm-0.1.0.post1.dev2/docs/index.md +62 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/cli.md +87 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/component-inventory.md +62 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/configuration.md +64 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/data-structures.md +64 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/function-catalog.md +357 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/function-signature-matrix.md +1924 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/glossary.md +17 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/go-api.md +152 -0
- g2cv_casm-0.1.0.post1.dev2/docs/reference/python-api.md +197 -0
- g2cv_casm-0.1.0.post1.dev2/docs/tutorials/setup-for-beginners.md +64 -0
- g2cv_casm-0.1.0.post1.dev2/docs/tutorials/tutorial-1-hello-world.md +37 -0
- g2cv_casm-0.1.0.post1.dev2/docs/tutorials/tutorial-2-real-use-case.md +42 -0
- g2cv_casm-0.1.0.post1.dev2/docs/tutorials/tutorial-3-advanced-integration.md +50 -0
- g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/PKG-INFO +257 -0
- g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/SOURCES.txt +127 -0
- g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/dependency_links.txt +1 -0
- g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/entry_points.txt +3 -0
- g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/requires.txt +3 -0
- g2cv_casm-0.1.0.post1.dev2/g2cv_casm.egg-info/top_level.txt +1 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/active.go +448 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/main.go +420 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/main_test.go +37 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/passive.go +64 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/resolver.go +142 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/dns_enum/wordlist.go +33 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/http_verify/main.go +1454 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/http_verify/main_test.go +1245 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/probe/main.go +213 -0
- g2cv_casm-0.1.0.post1.dev2/hands/cmd/probe/main_test.go +161 -0
- g2cv_casm-0.1.0.post1.dev2/hands/go.mod +12 -0
- g2cv_casm-0.1.0.post1.dev2/hands/go.sum +12 -0
- g2cv_casm-0.1.0.post1.dev2/mkdocs.yml +38 -0
- g2cv_casm-0.1.0.post1.dev2/pyproject.toml +29 -0
- g2cv_casm-0.1.0.post1.dev2/requirements-dev.txt +2 -0
- g2cv_casm-0.1.0.post1.dev2/requirements.txt +3 -0
- g2cv_casm-0.1.0.post1.dev2/scopes/scope.example.yaml +51 -0
- g2cv_casm-0.1.0.post1.dev2/setup.cfg +4 -0
- g2cv_casm-0.1.0.post1.dev2/targets/target-harness.example.json +12 -0
- g2cv_casm-0.1.0.post1.dev2/wordlists/README.md +20 -0
- g2cv_casm-0.1.0.post1.dev2/wordlists/common-subdomains.txt +100 -0
- g2cv_casm-0.1.0.post1.dev2/wordlists/extended-subdomains.txt +1000 -0
|
@@ -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`.
|