Commit graph

432 commits

Author SHA1 Message Date
e5339d264c Improve asyncio usage 2023-10-23 22:35:27 +02:00
43f43a4137 Fix DatabaseKeyring tests 2023-10-23 20:26:23 +02:00
41442e5b59 Add basic support for RDBMS-based keyring 2023-09-30 22:38:33 +02:00
274bfbaf3b Always use 'python' binary during tests 2023-09-30 22:33:49 +02:00
c570bcd383 Update Alice's key expiry date 2023-09-25 19:44:37 +02:00
624a335a41 GnuPG: clean up and collect more diagnostic info
- Use regular expressions instead of finding particular characters in gnupg
  output to decide whether confirmation line was found.

- Use tempfile.mkdtemp to create secure temporary directories.

- Record information about the key considered by GnuPG. When missing in
  exception, it means no key was found.
2023-09-21 20:21:01 +02:00
6c114b6dcd Ensure correct logging initialisation in webgate-cron 2023-09-21 20:21:01 +02:00
fccabc083c Fix unencrypted delivery arguments
When falling back to unencrypted mail delivery, do not pass sender information
to SendFrom.call method.
2023-09-21 20:21:01 +02:00
pfm
401f67844a Merge pull request 'Refresh docs' (#128) from 126-refresh-docs into main
Reviewed-on: #128
2023-07-08 13:40:42 +00:00
cfbb413e7e Explicitly mention requirements.txt file 2023-07-08 02:03:20 +02:00
adcafb30c3 Reorder and simplify first secions of README 2023-07-08 02:02:47 +02:00
f0d4447f4a Move requirements to INSTALL, improve language 2023-06-25 22:41:13 +02:00
addb119b3e Update INSTALL.md
- Explain requirements files are used now.
- Mention recommended Python version.
- Refresh instructions after splitting Lacre into components.
2023-06-25 22:31:34 +02:00
bcd0284eac Update README
- Simplify where possible.
- Remove outdated parts.
- Explain that only Python 3.9 is tested and supported.
- Link to Lacre Webgate repository.
2023-06-18 21:31:47 +02:00
pfm
c8f6743768 Merge pull request 'Handle missing Content-Type properly' (#125) from 124-missing-ct into main
Reviewed-on: #125
2023-05-19 18:38:17 +00:00
a30b5e7577 Handle missing Content-Type properly
- ContentManager sets default Content-Type even if it was missing in the
  original message.

- Make sure that when Content-Type is missing, copying parameters doesn't
  raise an error.

- Add a unit-test to check that.
2023-05-19 20:30:00 +02:00
pfm
07fb8d6ae8 Merge pull request 'Fix encoding issues' (#123) from post-test-fixes into main
Reviewed-on: #123
2023-05-11 20:22:23 +00:00
5a5b6c27a4 Fix tests after rebase 2023-05-08 22:32:19 +02:00
3297bbfcca Clean up and document Advanced Mail Filter E2E test
- Remove unused code.
- Add docstrings.
2023-05-08 22:17:02 +02:00
b3c0235486 Make case-discovery code cleaner and more flexible 2023-05-08 22:17:02 +02:00
0cdbf5ba7d Add emoji test 2023-05-08 22:17:02 +02:00
c08d66ac80 Migrate daemon E2E tests to unittest framework 2023-05-08 22:17:02 +02:00
518b823b5c Fix simple filter: pass policy to as_bytes()
Also: adjust expected test output because it's now Base64-encoded.
2023-05-08 22:17:02 +02:00
459779bea6 Add more test cases 2023-05-08 22:17:02 +02:00
61cf50effe Fix MIME content sub-type handling for non-plain text messages 2023-05-08 22:17:02 +02:00
bc92d7a31c [e2e_test] Identify test cases by iteracting config sections 2023-05-08 22:17:02 +02:00
da0ffb4a51 Add a test message with Emoji 2023-05-08 22:17:02 +02:00
34e8b6a4eb Move the last key-related function to keyring module 2023-05-08 22:17:02 +02:00
285f5dbf18 Don't overwrite CTE
We rely on Content Manager to select the right Content-Transfer-Encoding.
2023-05-08 22:17:02 +02:00
1acb330c02 Rewrite e2e_test to use unittest framework 2023-05-08 22:17:02 +02:00
fdd11dba14 Log more information about FS events while reloading keys 2023-05-08 22:17:02 +02:00
682de14630 Split the code into smaller modules
Introduce modules:
- lacre.transport - for actual delivery via SMTP
- lacre.smime - to take care of S/MIME stuff

Implement lacre.transport.SendFrom class that does a almost exactly the same
thing as the original send_msg function, but without using global variable to
store original message sender.
2023-05-08 22:17:02 +02:00
ff6e0bfbdd Move recipient-processing code to a dedicated module 2023-05-08 22:17:02 +02:00
5f5b374f84 Unify send_msg, add more type hints 2023-05-08 22:17:02 +02:00
67e6df17fb Move success flag before 'try' 2023-05-08 22:17:02 +02:00
0da169ae61 Log exceptions from failover delivery 2023-05-08 22:17:02 +02:00
f4e21217c2 [simple-filter] Retry delivery recoding text parts 2023-05-08 22:17:02 +02:00
1f1fe1dadb Add lots of log messages 2023-05-08 22:17:02 +02:00
8a42f3fea1 Improve error-handling for simple filter and test relay 2023-05-08 22:17:02 +02:00
8def4b40dc Correct sample message in contract tests 2023-05-08 22:17:02 +02:00
e595e8baf4 Fix contract tests 2023-05-08 22:17:02 +02:00
a5f79c1ae7 Wrap recipient lists
Instead of passing pairs of lists (emails and keys) separately, implement a
class RecipientList to wrap such pair of lists.
2023-05-08 22:17:02 +02:00
c5e788b2a0 Add more contract tests for email module 2023-05-08 22:17:02 +02:00
12b7c3394d Make test relay slightly cleaner 2023-05-08 22:17:02 +02:00
b2bd6a9926 Encapsulate recipient lists
Implement RecipientList class with:
- recipient (email) list,
- key (identity) list.

Cover with basic unit test.
2023-05-08 22:17:02 +02:00
86a3e0031b Adjust gpg-mailgate.py script to use SMTPUTF8 policy 2023-05-08 22:17:02 +02:00
54ee9d9875 Add minor E2E test improvements 2023-05-08 22:17:02 +02:00
603a88489e Polish the code 2023-05-08 22:17:02 +02:00
ffd5f08ad9 Make PGP message recognition more thorough 2023-05-08 22:17:02 +02:00
d342f206de Handle messages as EmailMessage
In the daemon, specify policy as SMTPUTF8.  That sets the deafult message type
to EmailMessage.

EmailMessage class is richer, including support for Content Managers, giving
it the capability to properly handle textual data and its encodings.

Also: add another contract test.
2023-05-08 22:17:02 +02:00