rnodeconf from rnspure refuses to work without cryptography
Describe the Bug I encountered this while trying to get a bare-bones nomadnet station online from scratch on an ancient PC.
This seems like a bug to me if the purpose of rnspure is to work on systems that can't install PyCA/cryptography.
To Reproduce
python -m venv rns_venv
. rns_venv/bin/activate
pip install rnspure pyserial
rnodeconf --help
Expected Behavior I expect to see the usage text, not the error message below. I might have unreasonable expectations.
Logs & Screenshots
RNode Config Utility needs the cryptography module to work.
You can install it with: pip3 install cryptography
System Information
- Alpine Linux 3.22.0 x86
- Python 3.12.11, installed via apk
- rnspure 0.9.6
Additional context
It's worth noting that rnsd appears to start and run. I just can't use this machine to configure an RNode for it to use.
RNode Config requires cryptography for loading/saving DER format keys, as well as using the MD5 hashing algorithm. I know that it's possible to use hashlib for the MD5. I personally don't think this constitutes a bug as the README does not state that rnodeconf requires no dependencies, only rnspure. You will still need a system that can install cryptography in order to configure a new RNode.
Relevant README section: https://github.com/markqvist/Reticulum/blob/799bcfc7aae1d6f41a86e78a60208c89f7722553/README.md?plain=1#L243-L246
That's why this seems wrong to me. If rnodeconf doesn't work without cryptography then why is a broken version of it included in rnspure?
I tested this on a totally clean install of Alpine Linux with a fresh venv.
The rnspure package is supposed to offer a fully functional RNS stack and basic utilities with no external dependencies, but currently will not work without PyCA/Cryptography, since it needs to load DER keys, as @Aareon notes. This could be added as pure-python code in rnodeconf, but currently I don't think that should be high priority, as it's much better to work on general and better replacement for rnodeconf, as I believe @jacobeva currently is.
Closing for now.