3 ms·
Has libsodium actually made backward incompatible changes to its formats?
by comex 2y ago
Has libsodium actually made backward incompatible changes to its formats?
- blacklion 2y agoNot YET, but there are no any promises too. New API like secretstream includes algo into API names, so, I hope, it is "stable forever", but it is rather new feature. Basic APIs like "crypto_secretbox" are "black boxes" and there are no any guarantees spelled out. Algorithms are mentioned in documentation, though. What will do libsodium if used algorithm will be broken? I don't know.
- another2another 2y agoI don't have the source right now, but I believe a lot of the algorithms used are set in build time #defines so it might be possible to capture them at build time and store them with the encrypted data. Means you'd have to find a compiled lib with the exact same settings to decrypt them though.
- jedisct1 2y agoIf a high-level API ever has to be changed, that will be libsodium 2.0. In 12 years, libsodium never had any breaking API changes, even though I don't like the NaCl API much (especially usage of `unsigned long long` instead of `size_t` for sizes). API stability is something I'm very committed to, in all my software. APIs can always be improved. But from a developer perspective, a suboptimal but stable API is far better than something that requires changes to all your applications every time the dependencies are updated.
- jedisct1 2y agoThis is documented in the FAQ.
- jedisct1 2y agoNo.