CryptNode 0.1.1
Managed multi-portal client for CryptPortal, with private FRP and stunnel executables.
Supported platforms
- Windows x86-64 with a trusted machine-level Python 3.8 or newer.
- Linux x86-64 with glibc 2.31 or newer and systemd; use a trusted virtual environment owned by the deployment user.
- Other architectures and macOS are not supported by these wheels.
Install
Linux, inside the intended virtual environment:
python -m pip install cryptnode==0.1.1
python -m cryptnode --version
Windows, from an administrator terminal using the intended machine-level Python:
python -s -m pip install --no-user cryptnode==0.1.1
python -s -m pip check
python -s -c "import cryptnode.host"
python -m cryptnode --version
Windows SYSTEM scheduled tasks must be able to read and execute that Python installation, CryptNode and its complete dependency set. User AppData installations are unsuitable. Using -s prevents pip from treating dependencies installed only in the interactive user's site-packages as satisfied. The Python environment and package files must not be writable by untrusted users. A successful import is a prerequisite, not an end-to-end scheduled-task test.
Dependencies: cryptography==43.0.3; Python versions below 3.11 also require tomli==2.2.1. pip installs their declared dependencies automatically.
Deploy and connect
crnode deploy <absolute-runtime-directory>
crnode load <two-digit-node-id> <client-key-bundle.zip>
crnode list
crnode status <portal-name-or-id> --json
On Windows, load and commands that modify SYSTEM tasks require an administrator terminal. Linux commands request sudo as needed while retaining the selected virtual environment. Obtain a matching client bundle from your CryptPortal administrator; credentials and server configuration are not included in this distribution. Protect client bundles and private keys.
Changes and validation limits
0.1.1 adds Linux sudo/virtual-environment usability improvements, prompt idempotent start for already-running instances, concise Ctrl+C handling and a five-column Chinese list display. Initial load and runtime public TLS connections use private stunnel with CA/hostname checks, mutual TLS and per-handshake server-leaf certificate pin verification.
The accepted candidate reports 107 passed/11 skipped on Windows, 99 passed/19 skipped on Linux, 20 private mTLS tests and 32 handshake combinations across Ubuntu 20.04/22.04/24.04/26.04. These results do not imply all deployment scenarios passed. A Windows deployment failed when SYSTEM could not import a user-installed package, and subsequently when a globally installed package still depended on user-only cryptography. Successful retesting of that machine remains unconfirmed. Host stderr retention and clearer startup diagnostics remain improvement items.
This release packaging preserves every accepted CryptNode Python file and executable byte. It adds distribution materials and documentation; no runtime fix is claimed by the repackaging.
Third-party source and licenses
Each wheel contains complete stunnel 5.80 and OpenSSL 3.5.8 upstream source archives, the exact stunnel modification patch, build scripts and build matrix under cryptnode-0.1.1.dist-info/corresponding-source/. Extract the wheel as a ZIP to access them. Full licenses and notices are under cryptnode-0.1.1.dist-info/licenses/.
Apply the supplied patch to the supplied stunnel source using the supplied platform build script. The patch changes Profile working-directory handling on Windows and adds per-handshake leaf-certificate pin checks; these modifications are identified in the patch and build matrix. The same archive contains all corresponding OpenSSL source statically linked into the private TLS executable. Neither archive contains deployment credentials.
FRP is Apache-2.0; stunnel is GPL-2.0-or-later with its upstream OpenSSL linking exception; OpenSSL is Apache-2.0. These notices describe the respective third-party components, not a new license grant for unrelated CryptNode code. Windows compiler-runtime copyright notices and exceptions are included separately.
Release files for cryptnode 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cryptnode-0.1.1-2-py3-none-manylinux_2_31_x86_64.whl | Python 3 | none | Linux glibc 2.31+ x86-64 | Details |
| cryptnode-0.1.1-1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
Total release size: 17.0 MB
Release files / cryptnode-0.1.1-2-py3-none-manylinux_2_31_x86_64.whl
| Download URL | cryptnode-0.1.1-2-py3-none-manylinux_2_31_x86_64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | Linux glibc 2.31+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
5ae6b622854037d1d5d89cb1decb0601ff1c1b49fb41a2657cd1fcf691bdffa8
|
|
BLAKE2b-256 checksum How to use checksums |
172416d0d236ce79390dabe8926c63b89ded7365ccfc8ec9cc9b31c62dbeb18b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|
Release files / cryptnode-0.1.1-1-py3-none-win_amd64.whl
| Download URL | cryptnode-0.1.1-1-py3-none-win_amd64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fd48aace4d9194b13c98fa3dfdc7e6b0120c0e944fba8cced19cacfe330c9130
|
|
BLAKE2b-256 checksum How to use checksums |
388d75912746c3715cb082ac464c378cc588c6b84e34a1935d592f0431ea8eb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.10
|