- Provide a new reuqired parameter: [database]pooling_mode and use it during
SQLAlchemy engine initialisation.
- Update tests and configuration (including sample configuration).
- Adjust repository unit test to load config during setup.
- Pass an engine instance to repository constructors instead of connections.
Engine keeps a connection pool and we rely on it.
- Don't pass table definitions to repository constructors.
- Keep an internal reference to Engine in lacre.repository.
- Implement KeyConfirmationQueue.count_keys.
- Flush key-collecting structures each time a new public key entry is found.
This will avoid adding sub-keys and overwriting main keys with them.
- Use parseaddr from email.utils to parse emails (and drop realname part).
- Record logs produced during unit tests.
- Fix a small bug in test code.
Also: add basic information about available test identities to testing
documentation.
- Keep only one class to provide access to identities stored in the database.
- Remove old code and its tests.
- Align KeyRing and IdentityRepository APIs.
- Implement a (very) simple unit test for IdentityRepository.
- 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.
- 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.
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.
- Use MIMEPart instead of Message when encrypting in PGP/MIME mode.
- Wrap text/plain messages in MIMEPart, instead of manipulating payloads
manually.
- Add a test for wrapping.
- Clean up PGP/MIME flow by using API instead of explicit/manual generation of
headers.
- Fix E2E test configuration for PGP/MIME case.
- Add first lacre.core unit tests.
- Add another Contract Test.
When GnuPG refuses to encrypt a message (e.g. when key has expired), record
information about the failure and send to logs, then deliver cleartext. This
way we won't bounce email that could be delivered without encryption.
Also: add more E2E tests.