qntm 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.
- qntm-0.1.0/.gitignore +1 -0
- qntm-0.1.0/PKG-INFO +45 -0
- qntm-0.1.0/README.md +25 -0
- qntm-0.1.0/pyproject.toml +37 -0
- qntm-0.1.0/scripts/build-binaries.sh +39 -0
- qntm-0.1.0/src/qntm/__init__.py +68 -0
- qntm-0.1.0/src/qntm/__main__.py +4 -0
- qntm-0.1.0/src/qntm/bin/.gitignore +2 -0
- qntm-0.1.0/src/qntm/bin/.gitkeep +0 -0
- qntm-0.1.0/src/qntm/bin/qntm-darwin-amd64 +0 -0
- qntm-0.1.0/src/qntm/bin/qntm-darwin-arm64 +0 -0
- qntm-0.1.0/src/qntm/bin/qntm-linux-amd64 +0 -0
- qntm-0.1.0/src/qntm/bin/qntm-linux-arm64 +0 -0
- qntm-0.1.0/src/qntm/bin/qntm-windows-amd64.exe +0 -0
qntm-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__pycache__/
|
qntm-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: qntm
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: qntm secure messaging protocol CLI
|
|
5
|
+
Project-URL: Homepage, https://qntm.corpo.llc
|
|
6
|
+
Project-URL: Repository, https://github.com/corpollc/qntm
|
|
7
|
+
Author-email: Corpo LLC <hello@corpo.llc>
|
|
8
|
+
License-Expression: BUSL-1.1
|
|
9
|
+
Keywords: cli,encryption,messaging,security
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: Other/Proprietary License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Communications
|
|
17
|
+
Classifier: Topic :: Security :: Cryptography
|
|
18
|
+
Requires-Python: >=3.8
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# qntm
|
|
22
|
+
|
|
23
|
+
Secure messaging protocol CLI.
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
uvx qntm
|
|
29
|
+
# or
|
|
30
|
+
pip install qntm
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
qntm --help
|
|
37
|
+
qntm identity generate
|
|
38
|
+
qntm version
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## About
|
|
42
|
+
|
|
43
|
+
qntm implements the QSP v1.0 secure messaging protocol with support for key management, 1:1 and group messaging via untrusted drop boxes.
|
|
44
|
+
|
|
45
|
+
For more information, visit [qntm.corpo.llc](https://qntm.corpo.llc).
|
qntm-0.1.0/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# qntm
|
|
2
|
+
|
|
3
|
+
Secure messaging protocol CLI.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uvx qntm
|
|
9
|
+
# or
|
|
10
|
+
pip install qntm
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
qntm --help
|
|
17
|
+
qntm identity generate
|
|
18
|
+
qntm version
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## About
|
|
22
|
+
|
|
23
|
+
qntm implements the QSP v1.0 secure messaging protocol with support for key management, 1:1 and group messaging via untrusted drop boxes.
|
|
24
|
+
|
|
25
|
+
For more information, visit [qntm.corpo.llc](https://qntm.corpo.llc).
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "qntm"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "qntm secure messaging protocol CLI"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "BUSL-1.1"
|
|
11
|
+
requires-python = ">=3.8"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Corpo LLC", email = "hello@corpo.llc" },
|
|
14
|
+
]
|
|
15
|
+
keywords = ["messaging", "encryption", "security", "cli"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Environment :: Console",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"License :: Other/Proprietary License",
|
|
21
|
+
"Operating System :: OS Independent",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Topic :: Communications",
|
|
24
|
+
"Topic :: Security :: Cryptography",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
[project.urls]
|
|
28
|
+
Homepage = "https://qntm.corpo.llc"
|
|
29
|
+
Repository = "https://github.com/corpollc/qntm"
|
|
30
|
+
|
|
31
|
+
[project.scripts]
|
|
32
|
+
qntm = "qntm:main"
|
|
33
|
+
|
|
34
|
+
[tool.hatch.build.targets.wheel]
|
|
35
|
+
packages = ["src/qntm"]
|
|
36
|
+
|
|
37
|
+
[tool.hatch.build.targets.wheel.shared-data]
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Cross-compile qntm Go binary for all supported platforms.
|
|
5
|
+
# Usage: ./scripts/build-binaries.sh [version]
|
|
6
|
+
# version defaults to "dev"
|
|
7
|
+
|
|
8
|
+
VERSION="${1:-dev}"
|
|
9
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
10
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
11
|
+
OUT_DIR="$SCRIPT_DIR/../src/qntm/bin"
|
|
12
|
+
|
|
13
|
+
mkdir -p "$OUT_DIR"
|
|
14
|
+
|
|
15
|
+
PLATFORMS=(
|
|
16
|
+
"linux/amd64"
|
|
17
|
+
"linux/arm64"
|
|
18
|
+
"darwin/amd64"
|
|
19
|
+
"darwin/arm64"
|
|
20
|
+
"windows/amd64"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
LDFLAGS="-s -w -X main.version=${VERSION}"
|
|
24
|
+
|
|
25
|
+
for platform in "${PLATFORMS[@]}"; do
|
|
26
|
+
GOOS="${platform%/*}"
|
|
27
|
+
GOARCH="${platform#*/}"
|
|
28
|
+
output="qntm-${GOOS}-${GOARCH}"
|
|
29
|
+
if [ "$GOOS" = "windows" ]; then
|
|
30
|
+
output="${output}.exe"
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
echo "Building ${output}..."
|
|
34
|
+
CGO_ENABLED=0 GOOS="$GOOS" GOARCH="$GOARCH" \
|
|
35
|
+
go build -ldflags "$LDFLAGS" -o "$OUT_DIR/$output" "$PROJECT_ROOT/cmd/qntm/"
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
echo "Done. Binaries in $OUT_DIR:"
|
|
39
|
+
ls -lh "$OUT_DIR"/qntm-*
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"""qntm - secure messaging protocol CLI."""
|
|
2
|
+
|
|
3
|
+
__version__ = "0.1.0"
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
import platform
|
|
8
|
+
import subprocess
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _get_binary_name():
|
|
13
|
+
"""Return the platform-specific binary name."""
|
|
14
|
+
system = platform.system().lower()
|
|
15
|
+
machine = platform.machine().lower()
|
|
16
|
+
|
|
17
|
+
# Normalize arch
|
|
18
|
+
arch_map = {
|
|
19
|
+
"x86_64": "amd64",
|
|
20
|
+
"amd64": "amd64",
|
|
21
|
+
"aarch64": "arm64",
|
|
22
|
+
"arm64": "arm64",
|
|
23
|
+
}
|
|
24
|
+
arch = arch_map.get(machine)
|
|
25
|
+
if not arch:
|
|
26
|
+
return None
|
|
27
|
+
|
|
28
|
+
# Normalize OS
|
|
29
|
+
os_map = {
|
|
30
|
+
"linux": "linux",
|
|
31
|
+
"darwin": "darwin",
|
|
32
|
+
"windows": "windows",
|
|
33
|
+
}
|
|
34
|
+
osname = os_map.get(system)
|
|
35
|
+
if not osname:
|
|
36
|
+
return None
|
|
37
|
+
|
|
38
|
+
name = f"qntm-{osname}-{arch}"
|
|
39
|
+
if osname == "windows":
|
|
40
|
+
name += ".exe"
|
|
41
|
+
return name
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _find_binary():
|
|
45
|
+
"""Find the Go binary bundled in this package."""
|
|
46
|
+
bin_dir = os.path.join(os.path.dirname(__file__), "bin")
|
|
47
|
+
name = _get_binary_name()
|
|
48
|
+
if not name:
|
|
49
|
+
return None
|
|
50
|
+
path = os.path.join(bin_dir, name)
|
|
51
|
+
if os.path.isfile(path):
|
|
52
|
+
return path
|
|
53
|
+
return None
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def main():
|
|
57
|
+
"""Entry point: exec the bundled Go binary."""
|
|
58
|
+
binary = _find_binary()
|
|
59
|
+
if not binary:
|
|
60
|
+
plat = f"{platform.system()}/{platform.machine()}"
|
|
61
|
+
print(
|
|
62
|
+
f"qntm: no pre-built binary for {plat}.\n"
|
|
63
|
+
f"Build from source: https://github.com/corpollc/qntm",
|
|
64
|
+
file=sys.stderr,
|
|
65
|
+
)
|
|
66
|
+
sys.exit(1)
|
|
67
|
+
|
|
68
|
+
os.execv(binary, [binary] + sys.argv[1:])
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|