GNUnet Messenger API: January 2026
Hello there,
the new year has started and I continued with my ongoing work back from November. The client-side library libgnunetchat has added a new function to generate a random secret which applications like messenger-gtk or messenger-cli can store using libsecret. Such a secret will be used to encrypt and decrypt locally stored keys for private messages in the Messenger service. In theory it’s also possible to replace the secret with a custom password selected by the user but I didn’t want to add a dialog for entering a password to the application because it adds an annoying additional step regarding usability.
So the current implementation seems like a good compromise and it’s still possible to adjust it in the future. In case the secret gets dropped from the storage of libsecret by the user or the application would provide the wrong value by user input for example, only the previous keys can’t be decrypted and older messages stay inaccessible. New messages would use a newer keys and those would get stored using the newly provided secret.
With all these changes the identity key does no longer provide the access to private messages but is used for signatures of messages. Asymmetric keys for receiving the private messages are generated and stored separate encrypted using the secret. Also group and epoch keys which are used to guarantee forward secrecy will be stored encrypted using the secret as well.
The upcoming changes for all of this have been merged upstream and will be part of the next release of GNUnet. I will make sure to publish new releases of libgnunetchat and the applications following it. Potentially I will even complete my changes porting the GTK application from GTK3 to GTK4. But in that case you will read about it in another post.
Kind regards,
Jacki