Here's what's new:
Use deterministic IVs for AES-GCM instead of randomly generated ones
This isn't a necessary change, but aligns FerriShare with the recommended best practice for IV construction with AES-GCM.
Previously, FerriShare generated random IVs when encrypting filename and filedata.
This is considered safe by NIST for up to 2^32 messages with the same key before the risk of IV collision becomes untenable.
However, if possible, one should choose the IVs deterministically, thereby eliminating the risk of IV collision completely.
This patch switches FerriShare over to deterministic IVs, reducing the chance of an IV collision from 1 in 2^96 to 0.
Only display the "built with Rust and ♥ by Tobias Marschner" line in demo mode
After some consideration, I realized that that line in the footer on other people's self-hosted instances might suggest to visitors that I am somehow personally involved or responsible for the operation or maintenance of the instance, which is obviously not the case.
To prevent any confusion going forward, that line will only be shown when FerriShare is running in demo mode, as is the case at ferrishare-demo.tobiasm.dev. The link to this repository, the version tag, and the Privacy Policy and Legal Notice are unaffected by this change.