Commit Graph
7 Commits
Author SHA1 Message Date
Malte Meiboom 8de999411d Polish the code
- Reject user ids containing ANSI control characters when creating a new
  signing key.
- Prevent adding certificates twice when querying online sources if they
  contain multiple encryption keys.
- Dedup introducers if there are multiple authenticating paths.
- When listing locals, skip the signing key.
- Check if a mail can be encrypted at all due to available certificates.
  If not tell the MTA that the processing is done.
- Make `Introducer` comparable (`PartialEq`, `Eq` and `Hash`).
- minor polishing
2026-07-24 13:41:07 +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 ca58d73050 Add mail splitting
- If a mail has more then one recipient and not for all recipients an
  authenticated certificate can be obtained, the mail processing is
  split into 2 streams - one that encrypts and an other which sends the
  mail in plaintext.
- For both streams the header and the list of recipients is adjusted
  accordingly.
- As the milter interface only allows one stream, the second stream is
  reinjected into the MTA (via SMTP). The MTA is hardcoded to be
  localhost:25.
2026-07-09 12:49:47 +02:00
Malte Meiboom 516d745f00 Code polish
- Fix some typos.
- Added more comments (and documentation) to the code.
2026-05-27 10:53:02 +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 23c698f445 Start collecting recipients
- Collect recipients for processed email.
- Add proper email parsing
2025-12-11 11:53:55 +01:00