Reticulum icon indicating copy to clipboard operation
Reticulum copied to clipboard

rnodeconf from rnspure refuses to work without cryptography

Open AbortRetryFail opened this issue 10 months ago • 2 comments

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.

AbortRetryFail avatar Jun 13 '25 14:06 AbortRetryFail

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

Aareon avatar Jun 15 '25 20:06 Aareon

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.

AbortRetryFail avatar Jun 17 '25 17:06 AbortRetryFail

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.

markqvist avatar Jul 13 '25 10:07 markqvist