Red Hat Bugzilla – Bug 1464671
cjdns-20 is available
Last modified: 2017-09-25 20:31:39 EDT
Latest upstream release: 20
Current version/release in rawhide: 19.1-4.fc27
Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy
More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring
Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.
Based on the information from anitya: https://release-monitoring.org/project/10117/
The difficulty with cjdns-20 is the new function in crypto/Sign.c:
void Sign_signingKeyPairFromCurve25519(uint8_t keypairOut, uint8_t secretCryptoKey);
It is implemented using private functions in the embedded nacl source. There is no equivalent in libsodium, or in the public nacl interface (so I can't just switch to Fedora supplied nacl package).
The only way to get cjdns-20 up quickly is to switch to the embedded nacl library, which I am reluctant to do.
One idea I had is to copy just enough of the embedded nacl to implement the above function.
Bits_memcpy(keypairOut, secretCryptoKey, 32);
keypairOut &= 248;
keypairOut &= 63;
keypairOut |= 64;
There are only the last two functions to copy. I don't know how many internal dependencies they will have.
It turns out that the Fedora nacl package exports the ge25519 scalar functions - even though they are not defined in the public headers. I tested copying the definitions from nacl private headers and linking against nacl after sodium. It works. That's kind of funky (and would break horribly if the internal API changes). But I could link against the Fedora nacl lib (only) and get v20 out there.
There is a feature request on libsodium for exporting the scalar operations:
That would also resolve the issue. That issue mentions that TweetNaCl exports ed25519 scalar operations.