## This isn't secure.

- I don't know what I'm doing, so there are probably lots worse problems than these!
- Provides multiple network services; unclear if those could be unintentionally visible if the relevant ports were open
  - Some of the services are *meant* to be visible, but not all of them
- Rust doesn't zero memory when it's freed, so secrets could linger in memory
  - Possibly using a custom allocator could help? https://ianbull.com/posts/rust-custom-allocators
- Similarly, Linux doesn't zero processes' memory when they exit
- If a process gets swapped to disk, secrets could be leaked
  - mlockall tries to help but isn't sufficient (e.g. laptop suspend; running in VMs)
- Dependency issues:
  - tiny_http isn't very maintained; I've vendored a version and used an LLM to update the certificate handling code which is probably not the part you want to be LLM-ified
  - Security-related dependencies "ring" (provides cryptography for preventing man-in-the-middle attacks, etc) and "rage" (keeps your documents private from for instance a malicious server) are described as "an experiment" and "beta", respectively, so, um.
    - "rage", and "secrecy" (which it depends on), both sitting on what seem like vulnerabilities unfixed for months: https://github.com/str4d/rage/issues/574 https://github.com/iqlusioninc/crates/issues/1319
    - These look a lot more maintained than rage/secrecy: https://github.com/RustCrypto
  - Just dependencies in general. Supply chain attacks and all that.
- Security in the technical sense does nothing with shoulder surfers.
  - Digital "shoulder surfers" like screen-scraping malware also can't really be guarded against, at least when using an external web browser to render or when using X11.
  - Software can only be as secure as the OS and machine it's running on.
- ...