Hi all,
I have developed luazen [1], a small library with some functions that I use often together: low-grade encryption and hash (rc4, md5, sha1), binary encoding (base64 for wrapping encrypted data and base58 for keys), and lightweight compression functions (based on LZF).
[1] https://github.com/philanc/luazen
It is pretty small (the .so is less than 23 kbytes) and self-contained (no external dependencies).
I have decided to share this library, but I don't know if it is the right "granularity":
Would you prefer to look for and use one library including all these functions?
Or have three libraries with, say, compression, crypto and binary encoding?
Or have several tiny libraries (eg. base58, LZF, rc4, md5, etc.)?
The tiny libraries might look like the more logical choice: It allows users to use exactly what they want, and it would allow to dispense for some very widespread options (md5, base64).
On the other hand, more granularity implies more effort, and it looks a bit (to me!) like these myriads of microscopic modules for node.js :-)
What do you think?
I would indeed go for smaller granularity. And moreover, I would go for secure cryptographic algorithms when writing new code. All of them, rc4, sha1, and, md5 are considered insecure. |