Commit Graph
47 Commits
Author SHA1 Message Date
Malte Meiboom 0df4c723d9 Fix bug in get_local_certifcates
- Use the trust amount of the whole path instead of just the last link.
2026-05-12 11:18:42 +02:00
Malte Meiboom 25c7da79ce add post mortem to runner.sh 2026-05-09 17:33:21 +02:00
Malte Meiboom 1921cc3e82 reactivate e2e tests - 2
Signed-off-by: Malte Meiboom <malte@netropol.de>
2026-05-09 17:15:49 +02:00
Malte Meiboom 3ecbff4cf9 reactivate e2e tests
Signed-off-by: Malte Meiboom <malte@netropol.de>
2026-05-09 17:04:01 +02:00
Malte Meiboom 21b45d1702 Some cleanups
- Remove unused errors.
- Add doc comments.
2026-05-06 16:30:42 +02:00
Malte Meiboom c0fe0e91ea Make then '-config' parameter global
- `--config` needed to be the first argument, before any subcommands.
  Make `--config` global, so that it can appear at (almost) any place.
2026-05-06 15:49:36 +02:00
Malte Meiboom e98f5f7576 Implement 'introducer remove'
- Implement the subcommand `remove` for `introducer`.
- Remove the introducer by adding a certification with trust level 1 and
  trust depth 0.
- Move `crypt.rs` into `common/` and add a generic authenticaton
  function to be used by `introducer add` and `... remove`.
2026-05-06 15:38:33 +02:00
Malte Meiboom 9a6de637ea Fix tests in crypto.rs 2026-05-06 12:39:55 +02:00
Malte Meiboom f771d7eef2 switch logging to stdout 2026-05-06 12:37:26 +02:00
Malte Meiboom 0089953315 Remove the e2e job from ci/cd until it is fixed 2026-05-06 12:36:22 +02:00
Malte Meiboom f2260bc335 Move crypto.rs into common
- Refactor code and move crypto.rs into the common subdirectory.
- Fixed comments
2026-05-06 12:34:21 +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 5f50624478 Add escape/unescape helpers for regexes
- Add helpers for escape/unescape control characters used in regular
  expressions.
2026-04-30 12:57:23 +02:00
Malte Meiboom 4e28e636a1 Make clippy happy
- Applied many of the `clippy` suggestions.
2026-04-27 13:42:47 +02:00
Malte Meiboom 799f6eb588 Complete skeleton dispatcher
- Complete the dispatcher for the 'introducer' and 'local' command. This
  is currently only a skeleton.
- The 'introducer list' command is added.
2026-04-27 13:17:03 +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 2d072bf10b Merge branch 'malte/keyserver_lookup' into 'main'
Start milestone 3

See merge request husk-project/husk-milter!1
2026-02-08 19:42:34 +00:00
Malte Meiboom 4093e1e8e7 Upgrade dependencies
- especially: upgrade bytes
2026-02-08 20:31:31 +01:00
Malte Meiboom 5fda3924db Add end-to-end Test
- Add an infrastructur to run local e2e tests.
- Add some tests.
2026-01-23 13:56:05 +01:00
Malte Meiboom 30b1d29274 Start milestone 3
- Add functionality to query online sources (Keyservers, etc) for
  certificates.
- Use introducers to determine which UserIDs should be fetched from
  online soources. Check certifications before importing certifiactes
  into the local cert store.
- start docker image for local end-to-end testing.
2026-01-23 12:57:26 +01:00
Malte Meiboom 4270bf4ceb fix typo milestone_2 2026-01-05 16:34:29 +01:00
Malte Meiboom 377d5083e6 Update README (use correct milestones) 2026-01-05 13:34:29 +01:00
Malte Meiboom 313f012305 Update README 2026-01-05 13:27:28 +01:00
Malte Meiboom 071b88080c merge malte/first_encryption 2026-01-05 13:07:14 +01:00
Malte Meiboom b7e01a446c Refactoring loading of config file
- let `HuskConfig::load` return a `Result` instead of an `Option`.
- added comments
2026-01-05 12:32:30 +01:00
Malte Meiboom a56e933e80 Add end-to-end test to CI
- use new MTA image and an initial test
2025-12-17 12:26:09 +01:00
Malte Meiboom eeda63f5ab Add encryption
- actually encrypt the body of a mail
2025-12-17 11:11:28 +01:00
Malte Meiboom 64312da01d Add tests for is_encrypted()
- add some tests to ensure that is_encrypted() works correctly.
2025-12-16 12:29:14 +01:00
Malte Meiboom 9b41457b8e Check for encryption
- collect body of incoming mail.
- check if incoming mail is already encrypted - dont touch it if it is.
- check if recipients of that mail can encrypt.
2025-12-16 12:04:26 +01:00
Malte Meiboom e56eb8eb9a Add introducers
- add the `Introducer` types
- get introducers from the certificate store (and log them)
2025-12-15 12:27:20 +01:00
Malte Meiboom dd71b89485 Add certificates
- Refactor `Recipient` out of `MailContext`.
- Add lookup of authenticated certificates for recipients.
2025-12-11 16:03:34 +01:00
Malte Meiboom 23c698f445 Start collecting recipients
- Collect recipients for processed email.
- Add proper email parsing
2025-12-11 11:53:55 +01:00
Malte Meiboom 49c1b99b5a switched to local build image - for the tests 2025-12-10 11:14:07 +01:00
Malte Meiboom 69038177fe switched to local build image 2025-12-10 11:08:16 +01:00
Malte Meiboom cc2dfbfcf1 add missing StoreUpdate 2025-12-10 10:56:09 +01:00
Malte Meiboom efe3708609 Update .gitlab-ci.yml file, switched image to the local builder 2025-12-09 12:11:46 +00:00
Malte Meiboom 56647806b7 Steps towards encryption
- Added certstore and retrieval of the local trust root.
- Major work on keeping the context between calls to the milter.
- Added a context for an email in processing
- Added Husk specific errors
2025-12-09 12:11:07 +01:00
Malte Meiboom 196ddea7e5 Edit README.md 2025-12-04 12:28:09 +00:00
Malte Meiboom 0f3a05e811 Edit README
- Add build and installation instructions
2025-12-04 13:24:52 +01:00
Malte Meiboom fb654dad95 Edit README.md 2025-12-03 19:19:19 +00:00
malte 5f0e6ba128 Textfiles
- Adjust README
- add license.txt
2025-12-03 20:15:32 +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 Meiboom a8244ea9bf Update .gitlab-ci.yml file 2025-11-10 11:06:41 +00:00
Malte Meiboom 79a69fa037 Update .gitlab-ci.yml file 2025-11-10 11:03:10 +00:00
malte 85e08210e7 Initial CI
- add a noop CI configuration
2025-11-10 11:56:47 +01:00
malte d843c08425 Initial commit
- rough filestructure
- first simplistic daemon
2025-11-06 11:38:20 +01:00
Malte Meiboom af8df2e62e Initial commit 2025-10-24 10:15:47 +00:00