qwashed 0.2.0a1__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.
- qwashed-0.2.0a1/.gitignore +91 -0
- qwashed-0.2.0a1/CHANGELOG.md +1021 -0
- qwashed-0.2.0a1/LICENSE +201 -0
- qwashed-0.2.0a1/NOTICE +25 -0
- qwashed-0.2.0a1/PKG-INFO +332 -0
- qwashed-0.2.0a1/README.md +267 -0
- qwashed-0.2.0a1/THREAT_MODEL.md +267 -0
- qwashed-0.2.0a1/docs/AUDIT_GUIDE.md +626 -0
- qwashed-0.2.0a1/docs/CONTRIBUTING.md +82 -0
- qwashed-0.2.0a1/docs/QUICKSTART.md +173 -0
- qwashed-0.2.0a1/docs/ROADMAP.md +895 -0
- qwashed-0.2.0a1/docs/SECURITY.md +145 -0
- qwashed-0.2.0a1/docs/THREAT_PROFILES.md +356 -0
- qwashed-0.2.0a1/docs/VAULT_GUIDE.md +666 -0
- qwashed-0.2.0a1/docs/VERIFY_RELEASE.md +334 -0
- qwashed-0.2.0a1/examples/audit/README.md +37 -0
- qwashed-0.2.0a1/examples/audit/civic_websites.yaml +10 -0
- qwashed-0.2.0a1/examples/audit/email_pgp.yaml +19 -0
- qwashed-0.2.0a1/examples/audit/email_smime.yaml +23 -0
- qwashed-0.2.0a1/examples/audit/healthcare_endpoints.yaml +11 -0
- qwashed-0.2.0a1/examples/audit/journalism_endpoints.yaml +9 -0
- qwashed-0.2.0a1/examples/audit/legal_endpoints.yaml +9 -0
- qwashed-0.2.0a1/pyproject.toml +262 -0
- qwashed-0.2.0a1/qwashed/__init__.py +34 -0
- qwashed-0.2.0a1/qwashed/__main__.py +10 -0
- qwashed-0.2.0a1/qwashed/audit/__init__.py +46 -0
- qwashed-0.2.0a1/qwashed/audit/_tls_wire.py +835 -0
- qwashed-0.2.0a1/qwashed/audit/algorithm_tables.json +260 -0
- qwashed-0.2.0a1/qwashed/audit/classifier.py +340 -0
- qwashed-0.2.0a1/qwashed/audit/cli.py +560 -0
- qwashed-0.2.0a1/qwashed/audit/pipeline.py +104 -0
- qwashed-0.2.0a1/qwashed/audit/probe.py +888 -0
- qwashed-0.2.0a1/qwashed/audit/probe_base.py +38 -0
- qwashed-0.2.0a1/qwashed/audit/probe_pgp.py +487 -0
- qwashed-0.2.0a1/qwashed/audit/probe_smime.py +354 -0
- qwashed-0.2.0a1/qwashed/audit/profile_loader.py +130 -0
- qwashed-0.2.0a1/qwashed/audit/profiles/__init__.py +9 -0
- qwashed-0.2.0a1/qwashed/audit/profiles/default.yaml +35 -0
- qwashed-0.2.0a1/qwashed/audit/profiles/healthcare.yaml +33 -0
- qwashed-0.2.0a1/qwashed/audit/profiles/journalism.yaml +32 -0
- qwashed-0.2.0a1/qwashed/audit/profiles/legal.yaml +32 -0
- qwashed-0.2.0a1/qwashed/audit/report_html.py +197 -0
- qwashed-0.2.0a1/qwashed/audit/roadmap.py +253 -0
- qwashed-0.2.0a1/qwashed/audit/schemas.py +391 -0
- qwashed-0.2.0a1/qwashed/audit/scoring.py +451 -0
- qwashed-0.2.0a1/qwashed/cli.py +195 -0
- qwashed-0.2.0a1/qwashed/core/__init__.py +92 -0
- qwashed-0.2.0a1/qwashed/core/canonical.py +337 -0
- qwashed-0.2.0a1/qwashed/core/errors.py +130 -0
- qwashed-0.2.0a1/qwashed/core/kdf.py +257 -0
- qwashed-0.2.0a1/qwashed/core/report.py +174 -0
- qwashed-0.2.0a1/qwashed/core/schemas.py +164 -0
- qwashed-0.2.0a1/qwashed/core/signing.py +232 -0
- qwashed-0.2.0a1/qwashed/vault/__init__.py +29 -0
- qwashed-0.2.0a1/qwashed/vault/audit_log.py +410 -0
- qwashed-0.2.0a1/qwashed/vault/cli.py +645 -0
- qwashed-0.2.0a1/qwashed/vault/hybrid_kem.py +538 -0
- qwashed-0.2.0a1/qwashed/vault/hybrid_sig.py +348 -0
- qwashed-0.2.0a1/qwashed/vault/store.py +2270 -0
- qwashed-0.2.0a1/tests/__init__.py +2 -0
- qwashed-0.2.0a1/tests/audit/__init__.py +2 -0
- qwashed-0.2.0a1/tests/audit/test_classifier.py +304 -0
- qwashed-0.2.0a1/tests/audit/test_cli.py +225 -0
- qwashed-0.2.0a1/tests/audit/test_golden.py +230 -0
- qwashed-0.2.0a1/tests/audit/test_pipeline.py +144 -0
- qwashed-0.2.0a1/tests/audit/test_probe.py +471 -0
- qwashed-0.2.0a1/tests/audit/test_probe_pgp.py +389 -0
- qwashed-0.2.0a1/tests/audit/test_probe_smime.py +289 -0
- qwashed-0.2.0a1/tests/audit/test_profile_loader.py +145 -0
- qwashed-0.2.0a1/tests/audit/test_report_html.py +128 -0
- qwashed-0.2.0a1/tests/audit/test_roadmap.py +170 -0
- qwashed-0.2.0a1/tests/audit/test_schemas.py +262 -0
- qwashed-0.2.0a1/tests/audit/test_scoring.py +577 -0
- qwashed-0.2.0a1/tests/core/__init__.py +2 -0
- qwashed-0.2.0a1/tests/core/test_canonical.py +182 -0
- qwashed-0.2.0a1/tests/core/test_errors.py +63 -0
- qwashed-0.2.0a1/tests/core/test_kdf.py +138 -0
- qwashed-0.2.0a1/tests/core/test_report.py +64 -0
- qwashed-0.2.0a1/tests/core/test_schemas.py +125 -0
- qwashed-0.2.0a1/tests/core/test_signing.py +122 -0
- qwashed-0.2.0a1/tests/golden/civic_default.json +1 -0
- qwashed-0.2.0a1/tests/golden/healthcare_healthcare.json +1 -0
- qwashed-0.2.0a1/tests/golden/journalism_journalism.json +1 -0
- qwashed-0.2.0a1/tests/golden/legal_legal.json +1 -0
- qwashed-0.2.0a1/tests/test_smoke.py +177 -0
- qwashed-0.2.0a1/tests/test_verify_cli.py +125 -0
- qwashed-0.2.0a1/tests/vault/__init__.py +2 -0
- qwashed-0.2.0a1/tests/vault/conftest.py +23 -0
- qwashed-0.2.0a1/tests/vault/test_audit_log.py +272 -0
- qwashed-0.2.0a1/tests/vault/test_cli.py +688 -0
- qwashed-0.2.0a1/tests/vault/test_format_migration.py +422 -0
- qwashed-0.2.0a1/tests/vault/test_hybrid_kem.py +213 -0
- qwashed-0.2.0a1/tests/vault/test_hybrid_sig.py +162 -0
- qwashed-0.2.0a1/tests/vault/test_store.py +915 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
|
|
3
|
+
# ---------------------------------------------------------------------------
|
|
4
|
+
# Python
|
|
5
|
+
# ---------------------------------------------------------------------------
|
|
6
|
+
__pycache__/
|
|
7
|
+
*.py[cod]
|
|
8
|
+
*$py.class
|
|
9
|
+
*.so
|
|
10
|
+
.Python
|
|
11
|
+
|
|
12
|
+
# Build artifacts
|
|
13
|
+
build/
|
|
14
|
+
dist/
|
|
15
|
+
*.egg-info/
|
|
16
|
+
*.egg
|
|
17
|
+
.eggs/
|
|
18
|
+
wheels/
|
|
19
|
+
pip-wheel-metadata/
|
|
20
|
+
share/python-wheels/
|
|
21
|
+
|
|
22
|
+
# Virtual environments
|
|
23
|
+
.venv/
|
|
24
|
+
venv/
|
|
25
|
+
env/
|
|
26
|
+
ENV/
|
|
27
|
+
|
|
28
|
+
# Installer logs
|
|
29
|
+
pip-log.txt
|
|
30
|
+
pip-delete-this-directory.txt
|
|
31
|
+
|
|
32
|
+
# ---------------------------------------------------------------------------
|
|
33
|
+
# Testing / linting / typing
|
|
34
|
+
# ---------------------------------------------------------------------------
|
|
35
|
+
.pytest_cache/
|
|
36
|
+
.tox/
|
|
37
|
+
.nox/
|
|
38
|
+
.coverage
|
|
39
|
+
.coverage.*
|
|
40
|
+
htmlcov/
|
|
41
|
+
.cache
|
|
42
|
+
coverage.xml
|
|
43
|
+
*.cover
|
|
44
|
+
*.py,cover
|
|
45
|
+
.hypothesis/
|
|
46
|
+
|
|
47
|
+
.mypy_cache/
|
|
48
|
+
.ruff_cache/
|
|
49
|
+
.pyre/
|
|
50
|
+
.pytype/
|
|
51
|
+
|
|
52
|
+
# ---------------------------------------------------------------------------
|
|
53
|
+
# Editors / OS
|
|
54
|
+
# ---------------------------------------------------------------------------
|
|
55
|
+
.vscode/
|
|
56
|
+
.idea/
|
|
57
|
+
*.swp
|
|
58
|
+
*.swo
|
|
59
|
+
*~
|
|
60
|
+
.DS_Store
|
|
61
|
+
Thumbs.db
|
|
62
|
+
|
|
63
|
+
# ---------------------------------------------------------------------------
|
|
64
|
+
# Qwashed-specific (operational secrets and user data — must NEVER be checked in)
|
|
65
|
+
# ---------------------------------------------------------------------------
|
|
66
|
+
|
|
67
|
+
# Vault directories: any path that looks like a Qwashed vault root. We err on
|
|
68
|
+
# the side of caution; user-created vaults live outside the repo by default.
|
|
69
|
+
*.qwashed-vault/
|
|
70
|
+
qwashed-vault/
|
|
71
|
+
.qwashed/
|
|
72
|
+
|
|
73
|
+
# Signing keys
|
|
74
|
+
*.ed25519.sk
|
|
75
|
+
*.mldsa65.sk
|
|
76
|
+
*.hybrid.sk
|
|
77
|
+
qwashed-signing-key
|
|
78
|
+
qwashed-signing-key.*
|
|
79
|
+
|
|
80
|
+
# Signed audit artifacts that contain real organizational data
|
|
81
|
+
audit-*.json
|
|
82
|
+
audit-*.html
|
|
83
|
+
audit-*.pdf
|
|
84
|
+
!examples/audit_demo_*.json
|
|
85
|
+
!tests/**/audit-fixture-*.json
|
|
86
|
+
|
|
87
|
+
# Raw TLS handshakes captured during probing (may contain certificates)
|
|
88
|
+
*.handshake.b64
|
|
89
|
+
|
|
90
|
+
# Local override of threat profiles (users may keep private profiles)
|
|
91
|
+
local_profiles/
|