16 Commits
Author SHA1 Message Date
Malte Meiboom 04322f9cd9 Tor support
- Add support for using Tor via a socks5 proxy.
- Tor usage of the milter and the updater process are configured
  separately.
- Restructure the config file and add some documentation.
2026-08-10 15:12:50 +02:00
Malte Meiboom 1ed3e1e988 Updater
- The updater looks for updates to certificates from the certificate
  store.
- The updates are spaced by random time intervals so that the
  reconstruction of the content of the cert store is made more
  difficult.
- The updater can be send into the background - start, stop and status
  are implemented.
- The state of the updater is persisted to disk so that the update
  procedure survives a restart.
2026-08-07 11:11:55 +02:00
Malte Meiboom ba0d4c9768 Dependency fixes
- Remove dependency on rusqlite 1.40.x from Cargo.lock.
- Actually bump `sequoia-openpgp` to 2.4.1.
2026-07-22 11:07:23 +02:00
Malte Meiboom c37f2ef956 Optimize mail reinjection
- Mark reinjected mails so that Husk can shortcut the processing.
- Fix Cargo.toml to correctly include the patched version of
  sequoia-cert-store and sequoia-keystore.
2026-07-21 12:12:42 +02:00
Malte Meiboom d54cc480b4 Add footer
- Add a footer to each mail resulting from a split into an encrypted and
  an unencrypted version. The footer contains the recipients of the mail
  which are excluded in the corresponding stream.
- Move the construction of the `HuskContext` to the `mail`
  milter-command, as `helo` is used by scrapers to detect mailservers.
- Use `CertD::trust_root()` to get the trust root - it creates one if no
  root can be found.
- Add `chrono` dependency.
2026-07-14 11:28:34 +02:00
Malte Meiboom 94c94d1fce Upgrade dependencies
- Upgrade Sequoia PGP to 2.4.0
- Remove deprecated `sequoia_wot::CertSynopsis::userids()` and replace
  with `self_signed_userids()`.
- Add `lettre` as dependency for its SMTP functionality.
2026-07-03 21:52:26 +02:00
Malte Meiboom ee6b467139 Add daemon CLI commands
- Introduce option `--background` for `daemon start` to send the new
  process into the background.
- Implement a `ProcessDescr` which identifies a Husk process. This pays
  attention to the possibility of a rollover of the process ids.
- Implement `daemon status`.
- Implement `daemon stop` which sends `SIG_INT` to a running Husk
  process.
2026-06-30 12:17:07 +02:00
Malte Meiboom e47b1b837c Sign encrypted mails.
- Husk now not only encrypts outgoing emails (if possible) but also adds
  a signature.
- Rework the internal handling of the signing key.
- Integrate the signing into the workflow of the daemon.
- Add a configuration option for a subject replacement.
2026-06-18 13:24:24 +02:00
Malte Meiboom 1f89d40cd3 Start with signing outgoing mails
- Add a scheme on how to discover Husk signing keys. Siging keys mut be
  certified by the `local trust root` with a signature having a notation
  with a name equal to `signing_keys@husk-projet.org`.
- Fetch the key from the keystore.
- Expand `authenticate()` so that notation can be added to the
  signature.
- Add a test to create a signing key and fetch it from the keystore.
2026-06-10 15:00:33 +02:00
Malte Meiboom ccfb8d6f36 Add shell completions
- Add a `build.rs` (plus dependencies) to generate the shell completions
  clap knows.
2026-06-03 14:38:35 +02:00
Malte Meiboom a007a296ff Upgrade Cargo.toml
- Upgrade Cargo.toml and Cargo.lock
2026-05-27 10:54:12 +02:00
Malte Meiboom bf53af50ec Add introducer add command
- Create a command to add an introducer (with domains).
- Add a module for escaping regular expressions used in certifications
- Add some helper functions.
2026-05-04 22:55:02 +02:00
Malte Meiboom c33feb1ee7 First dispatcher
- Create (sub)command structure.
- First experimental dispatcher to start the daemon.
2026-02-22 12:51:05 +01:00
Malte Meiboom 4093e1e8e7 Upgrade dependencies
- especially: upgrade bytes
2026-02-08 20:31:31 +01:00
Malte Meiboom a729a5b626 Add anyhow and configurable TcpListener
- add anyhow to Cargo.toml
- make the connection parameter (for the TcpListener) configurable
2025-11-12 12:10:03 +01:00
malte d843c08425 Initial commit
- rough filestructure
- first simplistic daemon
2025-11-06 11:38:20 +01:00