stealth-message-cli 0.1.0__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 (25) hide show
  1. stealth_message_cli-0.1.0/PKG-INFO +72 -0
  2. stealth_message_cli-0.1.0/README.md +40 -0
  3. stealth_message_cli-0.1.0/pyproject.toml +84 -0
  4. stealth_message_cli-0.1.0/setup.cfg +4 -0
  5. stealth_message_cli-0.1.0/stealth_cli/__init__.py +0 -0
  6. stealth_message_cli-0.1.0/stealth_cli/__main__.py +711 -0
  7. stealth_message_cli-0.1.0/stealth_cli/config.py +132 -0
  8. stealth_message_cli-0.1.0/stealth_cli/crypto/__init__.py +0 -0
  9. stealth_message_cli-0.1.0/stealth_cli/crypto/keys.py +120 -0
  10. stealth_message_cli-0.1.0/stealth_cli/crypto/messages.py +130 -0
  11. stealth_message_cli-0.1.0/stealth_cli/exceptions.py +29 -0
  12. stealth_message_cli-0.1.0/stealth_cli/network/__init__.py +0 -0
  13. stealth_message_cli-0.1.0/stealth_cli/network/client.py +519 -0
  14. stealth_message_cli-0.1.0/stealth_cli/network/server.py +690 -0
  15. stealth_message_cli-0.1.0/stealth_cli/ui/__init__.py +0 -0
  16. stealth_message_cli-0.1.0/stealth_cli/ui/chat.py +1048 -0
  17. stealth_message_cli-0.1.0/stealth_cli/ui/setup.py +212 -0
  18. stealth_message_cli-0.1.0/stealth_message_cli.egg-info/PKG-INFO +72 -0
  19. stealth_message_cli-0.1.0/stealth_message_cli.egg-info/SOURCES.txt +23 -0
  20. stealth_message_cli-0.1.0/stealth_message_cli.egg-info/dependency_links.txt +1 -0
  21. stealth_message_cli-0.1.0/stealth_message_cli.egg-info/entry_points.txt +2 -0
  22. stealth_message_cli-0.1.0/stealth_message_cli.egg-info/requires.txt +12 -0
  23. stealth_message_cli-0.1.0/stealth_message_cli.egg-info/top_level.txt +1 -0
  24. stealth_message_cli-0.1.0/tests/test_crypto.py +307 -0
  25. stealth_message_cli-0.1.0/tests/test_network.py +785 -0
@@ -0,0 +1,72 @@
1
+ Metadata-Version: 2.4
2
+ Name: stealth-message-cli
3
+ Version: 0.1.0
4
+ Summary: Terminal client for stealth-message — end-to-end encrypted PGP chat
5
+ License: GPL-3.0-only
6
+ Project-URL: Homepage, https://syberiancode.com/stealth-message
7
+ Project-URL: Repository, https://github.com/syberiancode/stealth-message
8
+ Project-URL: Issues, https://github.com/syberiancode/stealth-message/issues
9
+ Keywords: chat,encryption,pgp,privacy,end-to-end
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Communications :: Chat
18
+ Classifier: Topic :: Security :: Cryptography
19
+ Requires-Python: <3.13,>=3.10
20
+ Description-Content-Type: text/markdown
21
+ Requires-Dist: pgpy>=0.6.0
22
+ Requires-Dist: websockets>=12.0
23
+ Requires-Dist: rich>=13.0
24
+ Requires-Dist: prompt_toolkit>=3.0
25
+ Requires-Dist: platformdirs>=4.0
26
+ Provides-Extra: dev
27
+ Requires-Dist: pytest>=8.0; extra == "dev"
28
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
29
+ Requires-Dist: black>=24.0; extra == "dev"
30
+ Requires-Dist: ruff>=0.4; extra == "dev"
31
+ Requires-Dist: mypy>=1.10; extra == "dev"
32
+
33
+ # stealth-message CLI
34
+
35
+ End-to-end encrypted PGP chat. No central server. No accounts. No content metadata.
36
+
37
+ ## Installation
38
+
39
+ ```bash
40
+ curl -fsSL https://syberiancode.com/stealth-message/install.sh | bash
41
+ ```
42
+
43
+ **Windows (PowerShell):**
44
+ ```powershell
45
+ powershell -c "irm https://syberiancode.com/stealth-message/install.ps1 | iex"
46
+ ```
47
+
48
+ **Or install directly with pip:**
49
+ ```bash
50
+ pip install stealth-message-cli
51
+ ```
52
+
53
+ ## Requirements
54
+
55
+ - Python 3.10, 3.11, or 3.12
56
+
57
+ ## Usage
58
+
59
+ ```bash
60
+ stealth-cli
61
+ ```
62
+
63
+ ## Security
64
+
65
+ - RSA-4096 keypair per user
66
+ - Sign-then-encrypt on send, decrypt-then-verify on receive
67
+ - Private key is passphrase-protected on disk
68
+ - Wire encoding: ASCII-armored PGP → Base64 URL-safe
69
+
70
+ ## License
71
+
72
+ GPL-3.0. See [LICENSE](https://github.com/syberiancode/stealth-message/blob/main/LICENSE).
@@ -0,0 +1,40 @@
1
+ # stealth-message CLI
2
+
3
+ End-to-end encrypted PGP chat. No central server. No accounts. No content metadata.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ curl -fsSL https://syberiancode.com/stealth-message/install.sh | bash
9
+ ```
10
+
11
+ **Windows (PowerShell):**
12
+ ```powershell
13
+ powershell -c "irm https://syberiancode.com/stealth-message/install.ps1 | iex"
14
+ ```
15
+
16
+ **Or install directly with pip:**
17
+ ```bash
18
+ pip install stealth-message-cli
19
+ ```
20
+
21
+ ## Requirements
22
+
23
+ - Python 3.10, 3.11, or 3.12
24
+
25
+ ## Usage
26
+
27
+ ```bash
28
+ stealth-cli
29
+ ```
30
+
31
+ ## Security
32
+
33
+ - RSA-4096 keypair per user
34
+ - Sign-then-encrypt on send, decrypt-then-verify on receive
35
+ - Private key is passphrase-protected on disk
36
+ - Wire encoding: ASCII-armored PGP → Base64 URL-safe
37
+
38
+ ## License
39
+
40
+ GPL-3.0. See [LICENSE](https://github.com/syberiancode/stealth-message/blob/main/LICENSE).
@@ -0,0 +1,84 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "stealth-message-cli"
7
+ version = "0.1.0"
8
+ description = "Terminal client for stealth-message — end-to-end encrypted PGP chat"
9
+ readme = {file = "README.md", content-type = "text/markdown"}
10
+ license = {text = "GPL-3.0-only"}
11
+ requires-python = ">=3.10,<3.13"
12
+ keywords = ["chat", "encryption", "pgp", "privacy", "end-to-end"]
13
+ classifiers = [
14
+ "Development Status :: 3 - Alpha",
15
+ "Environment :: Console",
16
+ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3.10",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Programming Language :: Python :: 3.12",
21
+ "Topic :: Communications :: Chat",
22
+ "Topic :: Security :: Cryptography",
23
+ ]
24
+ dependencies = [
25
+ "pgpy>=0.6.0",
26
+ "websockets>=12.0",
27
+ "rich>=13.0",
28
+ "prompt_toolkit>=3.0",
29
+ "platformdirs>=4.0",
30
+ ]
31
+
32
+ [project.optional-dependencies]
33
+ dev = [
34
+ "pytest>=8.0",
35
+ "pytest-asyncio>=0.23",
36
+ "black>=24.0",
37
+ "ruff>=0.4",
38
+ "mypy>=1.10",
39
+ ]
40
+
41
+ [project.urls]
42
+ Homepage = "https://syberiancode.com/stealth-message"
43
+ Repository = "https://github.com/syberiancode/stealth-message"
44
+ Issues = "https://github.com/syberiancode/stealth-message/issues"
45
+
46
+ [project.scripts]
47
+ stealth-cli = "stealth_cli.__main__:main"
48
+
49
+ [tool.setuptools.packages.find]
50
+ where = ["."]
51
+ include = ["stealth_cli*"]
52
+
53
+ # ---------------------------------------------------------------------------
54
+ # black
55
+ # ---------------------------------------------------------------------------
56
+ [tool.black]
57
+ target-version = ["py310"]
58
+ line-length = 88
59
+
60
+ # ---------------------------------------------------------------------------
61
+ # ruff
62
+ # ---------------------------------------------------------------------------
63
+ [tool.ruff]
64
+ target-version = "py310"
65
+ line-length = 88
66
+
67
+ [tool.ruff.lint]
68
+ select = ["E", "F", "I", "UP", "B", "SIM"]
69
+ ignore = []
70
+
71
+ # ---------------------------------------------------------------------------
72
+ # mypy
73
+ # ---------------------------------------------------------------------------
74
+ [tool.mypy]
75
+ python_version = "3.10"
76
+ strict = true
77
+ ignore_missing_imports = true
78
+
79
+ # ---------------------------------------------------------------------------
80
+ # pytest
81
+ # ---------------------------------------------------------------------------
82
+ [tool.pytest.ini_options]
83
+ asyncio_mode = "auto"
84
+ testpaths = ["tests"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
File without changes